final class ResourceClient[T, DeleteResult] extends Resource[T] with ResourceDelete[T, DeleteResult] with ResourceDeleteAll[T] with ResourceClientBase
Generic implementation of Resource, ResourceDelete and ResourceDeleteAll
See https://kubernetes.io/docs/reference/using-api/api-concepts/
- T
Resource type, must have JSON encoder and decoder and an implementation of com.coralogix.zio.k8s.client.model.K8sObject
- DeleteResult
Result type of the delete operation. Usually com.coralogix.zio.k8s.model.pkg.apis.meta.v1.Status but for some resources it can be custom.
- Alphabetic
- By Inheritance
- ResourceClient
- ResourceClientBase
- ResourceDeleteAll
- ResourceDelete
- Resource
- AnyRef
- Any
- Hide All
- Show All
- Public
- All
Instance Constructors
-
new
ResourceClient(resourceType: K8sResourceType, cluster: K8sCluster, backend: K8sBackend)(implicit arg0: K8sObject[T], arg1: Encoder[T], arg2: Decoder[T], arg3: Encoder[DeleteResult], arg4: Decoder[DeleteResult])
- resourceType
Kubernetes resource metadata
- cluster
Configured Kubernetes cluster
- backend
Configured HTTP client
Value Members
-
final
def
!=(arg0: Any): Boolean
- Definition Classes
- AnyRef → Any
-
final
def
##(): Int
- Definition Classes
- AnyRef → Any
-
final
def
==(arg0: Any): Boolean
- Definition Classes
- AnyRef → Any
-
final
def
asInstanceOf[T0]: T0
- Definition Classes
- Any
-
def
asJsonAccumulating[B](implicit arg0: IsOptional[B]): ResponseAs[Either[ResponseException[String, NonEmptyList[Error]], B], Any]
If the response is successful (2xx), tries to deserialize the body from a string into JSON.
If the response is successful (2xx), tries to deserialize the body from a string into JSON. Returns:
Right(b)
if the parsing was successfulLeft(HttpError(String))
if the response code was other than 2xx (deserialization is not attempted)Left(DeserializationException)
if there's an error during deserialization
- Attributes
- protected
- Definition Classes
- ResourceClientBase
-
val
backend: K8sBackend
- Attributes
- protected
- Definition Classes
- ResourceClient → ResourceClientBase
-
def
clone(): AnyRef
- Attributes
- protected[lang]
- Definition Classes
- AnyRef
- Annotations
- @throws( ... ) @native() @HotSpotIntrinsicCandidate()
-
val
cluster: K8sCluster
- Attributes
- protected
- Definition Classes
- ResourceClient → ResourceClientBase
-
def
create(newResource: T, namespace: Option[K8sNamespace], dryRun: Boolean): IO[K8sFailure, T]
Creates a new resource
Creates a new resource
- newResource
The new resource to define in the cluster
- namespace
Namespace. For namespaced resources it must be Some. For cluster resources, it must be None.
- dryRun
If true, the request is sent to the server but it will not create the resource.
- returns
Returns the created resource as it was returned from Kubernetes
- Definition Classes
- ResourceClient → Resource
-
def
creating(namespace: Option[K8sNamespace], dryRun: Boolean): Uri
- Attributes
- protected
- Definition Classes
- ResourceClientBase
-
def
delete(name: String, deleteOptions: DeleteOptions, namespace: Option[K8sNamespace], dryRun: Boolean, gracePeriod: Option[zio.Duration] = None, propagationPolicy: Option[PropagationPolicy] = None): IO[K8sFailure, DeleteResult]
Deletes an existing resource selected by its name
Deletes an existing resource selected by its name
- name
Name of the resource
- deleteOptions
Delete options
- namespace
Namespace. For namespaced resources it must be Some. For cluster resources, it must be None.
- dryRun
If true, the request is sent to the server but it will not create the resource.
- gracePeriod
The duration in seconds before the object should be deleted. Value must be non-negative integer. The value zero indicates delete immediately. If this value is nil, the default grace period for the specified type will be used. Defaults to a per object value if not specified. zero means delete immediately.
- propagationPolicy
Whether and how garbage collection will be performed. Either this field or OrphanDependents may be set, but not both. The default policy is decided by the existing finalizer set in the metadata.finalizers and the resource-specific default policy. Acceptable values are: 'Orphan' - orphan the dependents; 'Background' - allow the garbage collector to delete the dependents in the background; 'Foreground' - a cascading policy that deletes all dependents in the foreground.
- returns
Response from the Kubernetes API
- Definition Classes
- ResourceClient → ResourceDelete
-
def
deleteAll(deleteOptions: DeleteOptions, namespace: Option[K8sNamespace], dryRun: Boolean = false, gracePeriod: Option[zio.Duration] = None, propagationPolicy: Option[PropagationPolicy] = None, fieldSelector: Option[FieldSelector] = None, labelSelector: Option[LabelSelector] = None): IO[K8sFailure, Status]
Delete all resources matching the provided constraints
Delete all resources matching the provided constraints
- deleteOptions
Delete options
- namespace
Namespace. For namespaced resources it must be Some. For cluster resources, it must be None.
- dryRun
If true, the request is sent to the server but it will not create the resource.
- gracePeriod
The duration in seconds before the object should be deleted. Value must be non-negative integer. The value zero indicates delete immediately. If this value is nil, the default grace period for the specified type will be used. Defaults to a per object value if not specified. zero means delete immediately.
- propagationPolicy
Whether and how garbage collection will be performed. Either this field or OrphanDependents may be set, but not both. The default policy is decided by the existing finalizer set in the metadata.finalizers and the resource-specific default policy. Acceptable values are: 'Orphan' - orphan the dependents; 'Background' - allow the garbage collector to delete the dependents in the background; 'Foreground' - a cascading policy that deletes all dependents in the foreground.
- fieldSelector
Select the items to be deleted by field selectors. Not all fields are supported by the server.
- labelSelector
Select the items to be deleted by label selectors.
- returns
Status returned by the Kubernetes API
- Definition Classes
- ResourceClient → ResourceDeleteAll
-
def
deleteAndWait(name: String, deleteOptions: DeleteOptions, namespace: Option[K8sNamespace], dryRun: Boolean = false, gracePeriod: Option[zio.Duration] = None, propagationPolicy: Option[PropagationPolicy] = None)(implicit ev: <:<[DeleteResult, Status]): ZIO[Any, K8sFailure, Unit]
Deletes an existing resource selected by its name and waits until it has gone
Deletes an existing resource selected by its name and waits until it has gone
- name
Name of the resource
- deleteOptions
Delete options
- namespace
Namespace. For namespaced resources it must be Some. For cluster resources, it must be None.
- dryRun
If true, the request is sent to the server but it will not create the resource.
- gracePeriod
The duration in seconds before the object should be deleted. Value must be non-negative integer. The value zero indicates delete immediately. If this value is nil, the default grace period for the specified type will be used. Defaults to a per object value if not specified. zero means delete immediately.
- propagationPolicy
Whether and how garbage collection will be performed. Either this field or OrphanDependents may be set, but not both. The default policy is decided by the existing finalizer set in the metadata.finalizers and the resource-specific default policy. Acceptable values are: 'Orphan' - orphan the dependents; 'Background' - allow the garbage collector to delete the dependents in the background; 'Foreground' - a cascading policy that deletes all dependents in the foreground.
- Definition Classes
- ResourceDelete
-
def
deleting(name: String, subresource: Option[String], namespace: Option[K8sNamespace], dryRun: Boolean, gracePeriod: Option[zio.Duration], propagationPolicy: Option[PropagationPolicy]): Uri
- Attributes
- protected
- Definition Classes
- ResourceClientBase
-
def
deletingMany(namespace: Option[K8sNamespace], dryRun: Boolean, gracePeriod: Option[zio.Duration], propagationPolicy: Option[PropagationPolicy], fieldSelector: Option[FieldSelector], labelSelector: Option[LabelSelector]): Uri
- Attributes
- protected
- Definition Classes
- ResourceClientBase
-
final
def
eq(arg0: AnyRef): Boolean
- Definition Classes
- AnyRef
-
def
equals(arg0: Any): Boolean
- Definition Classes
- AnyRef → Any
-
def
get(name: String, namespace: Option[K8sNamespace]): IO[K8sFailure, T]
Get a resource by its name
Get a resource by its name
- name
Name of the resource
- namespace
Namespace. For namespaced resources it must be Some. For cluster resources, it must be None.
- returns
Returns the current version of the resource
- Definition Classes
- ResourceClient → Resource
-
def
getAll(namespace: Option[K8sNamespace], chunkSize: Int, fieldSelector: Option[FieldSelector] = None, labelSelector: Option[LabelSelector] = None, resourceVersion: ListResourceVersion = ListResourceVersion.MostRecent): Stream[K8sFailure, T]
A paginated query of all resources with filtering possibilities
A paginated query of all resources with filtering possibilities
- namespace
Constraint the query to a given namespace. If None, results returned from all namespaces.
- chunkSize
Number of items to return per HTTP request
- fieldSelector
Constrain the returned items by field selectors. Not all fields are supported by the server.
- labelSelector
Constrain the returned items by label selectors.
- resourceVersion
Control the returned resources' version.
- returns
A stream of resources
- Definition Classes
- ResourceClient → Resource
-
final
def
getClass(): Class[_]
- Definition Classes
- AnyRef → Any
- Annotations
- @native() @HotSpotIntrinsicCandidate()
-
def
handleFailures[A](operation: String, namespace: Option[K8sNamespace], fieldSelector: Option[FieldSelector], labelSelector: Option[LabelSelector], name: Option[String])(f: Task[Response[Either[ResponseException[String, NonEmptyList[Error]], A]]]): IO[K8sFailure, A]
- Attributes
- protected
- Definition Classes
- ResourceClientBase
-
def
handleFailures[A](operation: String, namespace: Option[K8sNamespace], name: String)(f: Task[Response[Either[ResponseException[String, NonEmptyList[Error]], A]]]): IO[K8sFailure, A]
- Attributes
- protected
- Definition Classes
- ResourceClientBase
-
def
hashCode(): Int
- Definition Classes
- AnyRef → Any
- Annotations
- @native() @HotSpotIntrinsicCandidate()
-
final
def
isInstanceOf[T0]: Boolean
- Definition Classes
- Any
-
val
k8sRequest: RequestT[Empty, Either[String, String], Any]
- Attributes
- protected
- Definition Classes
- ResourceClientBase
-
def
modifying(name: String, subresource: Option[String], namespace: Option[K8sNamespace], dryRun: Boolean): Uri
- Attributes
- protected
- Definition Classes
- ResourceClientBase
-
final
def
ne(arg0: AnyRef): Boolean
- Definition Classes
- AnyRef
-
final
def
notify(): Unit
- Definition Classes
- AnyRef
- Annotations
- @native() @HotSpotIntrinsicCandidate()
-
final
def
notifyAll(): Unit
- Definition Classes
- AnyRef
- Annotations
- @native() @HotSpotIntrinsicCandidate()
-
def
paginated(namespace: Option[K8sNamespace], limit: Int, continueToken: Option[String], fieldSelector: Option[FieldSelector], labelSelector: Option[LabelSelector], resourceVersion: ListResourceVersion): Uri
- Attributes
- protected
- Definition Classes
- ResourceClientBase
-
def
replace(name: String, updatedResource: T, namespace: Option[K8sNamespace], dryRun: Boolean): IO[K8sFailure, T]
Replaces an existing resource selected by its name
Replaces an existing resource selected by its name
- name
Name of the resource
- updatedResource
The new value of the resource
- namespace
Namespace. For namespaced resources it must be Some. For cluster resources, it must be None.
- dryRun
If true, the request is sent to the server but it will not create the resource.
- returns
Returns the updated resource as it was returned from Kubernetes
- Definition Classes
- ResourceClient → Resource
-
val
resourceType: K8sResourceType
- Attributes
- protected
- Definition Classes
- ResourceClient → ResourceClientBase
-
def
simple(name: Option[String], subresource: Option[String], namespace: Option[K8sNamespace]): Uri
- Attributes
- protected
- Definition Classes
- ResourceClientBase
-
final
def
synchronized[T0](arg0: ⇒ T0): T0
- Definition Classes
- AnyRef
-
def
toString(): String
- Definition Classes
- AnyRef → Any
-
final
def
wait(arg0: Long, arg1: Int): Unit
- Definition Classes
- AnyRef
- Annotations
- @throws( ... )
-
final
def
wait(arg0: Long): Unit
- Definition Classes
- AnyRef
- Annotations
- @throws( ... ) @native()
-
final
def
wait(): Unit
- Definition Classes
- AnyRef
- Annotations
- @throws( ... )
-
def
watch(namespace: Option[K8sNamespace], resourceVersion: Option[String], fieldSelector: Option[FieldSelector] = None, labelSelector: Option[LabelSelector] = None, sendInitialEvents: Boolean = false, readTimeout: zio.Duration = Duration.Infinity): ZStream[Any, K8sFailure, TypedWatchEvent[T]]
Watch stream of resource change events of type com.coralogix.zio.k8s.client.model.TypedWatchEvent
Watch stream of resource change events of type com.coralogix.zio.k8s.client.model.TypedWatchEvent
This function requires the user to control the starting resourceVersion and to restart the watch stream when the server closes the connection.
For a more convenient variant check watchForever.
- namespace
Constraint the watched resources by their namespace. If None, all namespaces will be watched.
- resourceVersion
Last known resource version
- fieldSelector
Constrain the returned items by field selectors. Not all fields are supported by the server.
- labelSelector
Constrain the returned items by label selectors.
- sendInitialEvents
Whether to set sendInitialEvents=true in the k8s watch request. Only has an effect in k8s 1.28+. If set, k8s returns all existing resources as synthetic Added events before sending updates.
- returns
A stream of watch events
- Definition Classes
- ResourceClient → Resource
-
def
watchForever(namespace: Option[K8sNamespace], resourceVersion: Option[String] = None, fieldSelector: Option[FieldSelector] = None, labelSelector: Option[LabelSelector] = None, sendInitialEvents: Boolean = false, readTimeout: zio.Duration = Duration.Infinity): ZStream[Any, K8sFailure, TypedWatchEvent[T]]
Infinite watch stream of resource change events of type com.coralogix.zio.k8s.client.model.TypedWatchEvent
Infinite watch stream of resource change events of type com.coralogix.zio.k8s.client.model.TypedWatchEvent
The underlying implementation takes advantage of Kubernetes watch bookmarks.
- namespace
Constraint the watched resources by their namespace. If None, all namespaces will be watched.
- resourceVersion
Last known resource version to start watch from.
- fieldSelector
Constrain the returned items by field selectors. Not all fields are supported by the server.
- labelSelector
Constrain the returned items by label selectors.
- sendInitialEvents
Whether to set sendInitialEvents=true in the k8s watch request. Only has an effect in k8s 1.28+. If set, k8s returns all existing resources as synthetic Added events before sending updates.
- returns
A stream of watch events
- Definition Classes
- Resource
-
def
watching(namespace: Option[K8sNamespace], resourceVersion: Option[String], fieldSelector: Option[FieldSelector], labelSelector: Option[LabelSelector], sendInitialEvents: Boolean): Uri
- Attributes
- protected
- Definition Classes
- ResourceClientBase
Deprecated Value Members
-
def
finalize(): Unit
- Attributes
- protected[lang]
- Definition Classes
- AnyRef
- Annotations
- @throws( classOf[java.lang.Throwable] ) @Deprecated
- Deprecated