@kubernetes-models/gke
Version:
128 lines (127 loc) • 5.93 kB
TypeScript
import { IObjectMeta } from "@kubernetes-models/apimachinery/apis/meta/v1/ObjectMeta";
import { Model, ModelData } from "@kubernetes-models/base";
/**
* GCPSessionAffinityPolicy provides a way to apply session affinity policy configuration.
*/
export interface IGCPSessionAffinityPolicy {
/**
* APIVersion defines the versioned schema of this representation of an object.
* Servers should convert recognized schemas to the latest internal value, and
* may reject unrecognized values.
* More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources
*/
"apiVersion": "networking.gke.io/v1";
/**
* Kind is a string value representing the REST resource this object represents.
* Servers may infer this from the endpoint the client submits requests to.
* Cannot be updated.
* In CamelCase.
* More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds
*/
"kind": "GCPSessionAffinityPolicy";
"metadata"?: IObjectMeta;
/**
* Spec defines the desired state of GCPSessionAffinityPolicy.
*/
"spec": {
/**
* StatefulGeneratedCookieConfig defines cookie-based stateful session affinity where the date plane
* supplies a “session cookie” with the name "GSSA" which encodes a specific destination host and
* each request containing that cookie will be directed to that host as long as the destination host
* remains up and healthy.
* GCP will manage the session cookie but the client application code is responsible for copying the
* cookie from each RPC in the session to the next.
*/
"statefulGeneratedCookie"?: {
/**
* The cookie TTL value for the Set-Cookie header generated by the data plane. The lifetime of the
* cookie may be set to a value from 1 to 86400 seconds (24 hours) inclusive.
*/
"cookieTtlSeconds": number;
};
/**
* TargetRef identifies an API object to apply policy to.
*/
"targetRef": {
/**
* Group is the group of the target resource.
*/
"group": string;
/**
* Kind is kind of the target resource.
*/
"kind": string;
/**
* Name is the name of the target resource.
*/
"name": string;
/**
* Namespace is the namespace of the referent. When unspecified, the local
* namespace is inferred. Even when policy targets a resource in a different
* namespace, it MUST only apply to traffic originating from the same
* namespace as the policy.
*/
"namespace"?: string;
};
};
/**
* Status defines the current state of GCPSessionAffinityPolicy.
*/
"status"?: {
/**
* Conditions describe the current conditions of the GCPSessionAffinityPolicy.
*/
"conditions"?: Array<{
/**
* lastTransitionTime is the last time the condition transitioned from one status to another.
* This should be when the underlying condition changed. If that is not known, then using the time when the API field changed is acceptable.
*/
"lastTransitionTime": string;
/**
* message is a human readable message indicating details about the transition.
* This may be an empty string.
*/
"message": string;
/**
* observedGeneration represents the .metadata.generation that the condition was set based upon.
* For instance, if .metadata.generation is currently 12, but the .status.conditions[x].observedGeneration is 9, the condition is out of date
* with respect to the current state of the instance.
*/
"observedGeneration"?: number;
/**
* reason contains a programmatic identifier indicating the reason for the condition's last transition.
* Producers of specific condition types may define expected values and meanings for this field,
* and whether the values are considered a guaranteed API.
* The value should be a CamelCase string.
* This field may not be empty.
*/
"reason": string;
/**
* status of the condition, one of True, False, Unknown.
*/
"status": "True" | "False" | "Unknown";
/**
* type of condition in CamelCase or in foo.example.com/CamelCase.
* ---
* Many .condition.type values are consistent across resources like Available, but because arbitrary conditions can be
* useful (see .node.status.conditions), the ability to deconflict is important.
* The regex it matches is (dns1123SubdomainFmt/)?(qualifiedNameFmt)
*/
"type": string;
}>;
};
}
/**
* GCPSessionAffinityPolicy provides a way to apply session affinity policy configuration.
*/
export declare class GCPSessionAffinityPolicy extends Model<IGCPSessionAffinityPolicy> implements IGCPSessionAffinityPolicy {
"apiVersion": IGCPSessionAffinityPolicy["apiVersion"];
"kind": IGCPSessionAffinityPolicy["kind"];
"metadata"?: IGCPSessionAffinityPolicy["metadata"];
"spec": IGCPSessionAffinityPolicy["spec"];
"status"?: IGCPSessionAffinityPolicy["status"];
static apiVersion: IGCPSessionAffinityPolicy["apiVersion"];
static kind: IGCPSessionAffinityPolicy["kind"];
static is: import("@kubernetes-models/base").TypeMetaGuard<IGCPSessionAffinityPolicy>;
constructor(data?: ModelData<IGCPSessionAffinityPolicy>);
}