@kubernetes-models/gke
Version:
259 lines (258 loc) • 11.6 kB
TypeScript
import { IObjectMeta } from "@kubernetes-models/apimachinery/apis/meta/v1/ObjectMeta";
import { Model, ModelData } from "@kubernetes-models/base";
export interface IAPIGatewayAPIConfig {
/**
* apiVersion defines the versioned schema of this representation of an object. Servers should convert recognized schemas to the latest internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#resources
*/
"apiVersion": "apigateway.cnrm.cloud.google.com/v1alpha1";
/**
* kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#types-kinds
*/
"kind": "APIGatewayAPIConfig";
"metadata"?: IObjectMeta;
"spec": {
/**
* Immutable. The API to attach the config to.
*/
"api": string;
/**
* Immutable. Creates a unique name beginning with the specified prefix. If this and api_config_id are unspecified, a random value is chosen for the name.
*/
"apiConfigIdPrefix"?: string;
/**
* A user-visible name for the API.
*/
"displayName"?: string;
/**
* Immutable. Immutable. Gateway specific configuration.
* If not specified, backend authentication will be set to use OIDC authentication using the default compute service account.
*/
"gatewayConfig"?: {
/**
* Backend settings that are applied to all backends of the Gateway.
*/
"backendConfig": {
/**
* Immutable. Google Cloud IAM service account used to sign OIDC tokens for backends that have authentication configured
* (https://cloud.google.com/service-infrastructure/docs/service-management/reference/rest/v1/services.configs#backend).
*/
"googleServiceAccount": string;
};
};
/**
* gRPC service definition files. If specified, openapiDocuments must not be included.
*/
"grpcServices"?: Array<{
/**
* Immutable. Input only. File descriptor set, generated by protoc.
* To generate, use protoc with imports and source info included. For an example test.proto file, the following command would put the value in a new file named out.pb.
*
* $ protoc --include_imports --include_source_info test.proto -o out.pb.
*/
"fileDescriptorSet": {
/**
* Immutable. Base64 encoded content of the file.
*/
"contents": string;
/**
* Immutable. The file path (full or relative path). This is typically the path of the file when it is uploaded.
*/
"path": string;
};
/**
* Uncompiled proto files associated with the descriptor set, used for display purposes (server-side compilation is not supported). These should match the inputs to 'protoc' command used to generate fileDescriptorSet.
*/
"source"?: Array<{
/**
* Immutable. Base64 encoded content of the file.
*/
"contents": string;
/**
* Immutable. The file path (full or relative path). This is typically the path of the file when it is uploaded.
*/
"path": string;
}>;
}>;
/**
* Optional. Service Configuration files. At least one must be included when using gRPC service definitions. See https://cloud.google.com/endpoints/docs/grpc/grpc-service-config#service_configuration_overview for the expected file contents.
* If multiple files are specified, the files are merged with the following rules: \* All singular scalar fields are merged using "last one wins" semantics in the order of the files uploaded. \* Repeated fields are concatenated. \* Singular embedded messages are merged using these rules for nested fields.
*/
"managedServiceConfigs"?: Array<{
/**
* Immutable. Base64 encoded content of the file.
*/
"contents": string;
/**
* Immutable. The file path (full or relative path). This is typically the path of the file when it is uploaded.
*/
"path": string;
}>;
/**
* OpenAPI specification documents. If specified, grpcServices and managedServiceConfigs must not be included.
*/
"openapiDocuments"?: Array<{
/**
* The OpenAPI Specification document file.
*/
"document": {
/**
* Immutable. Base64 encoded content of the file.
*/
"contents": string;
/**
* Immutable. The file path (full or relative path). This is typically the path of the file when it is uploaded.
*/
"path": string;
};
}>;
/**
* The project that this resource belongs to.
*/
"projectRef": {
/**
* Allowed value: The `name` field of a `Project` resource.
*/
"external"?: string;
/**
* Name of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names
*/
"name"?: string;
/**
* Namespace of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/namespaces/
*/
"namespace"?: string;
} & (Exclude<{
/**
* Allowed value: The `name` field of a `Project` resource.
*/
"external"?: string;
/**
* Name of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names
*/
"name": string;
/**
* Namespace of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/namespaces/
*/
"namespace"?: string;
}, {
/**
* Allowed value: The `name` field of a `Project` resource.
*/
"external": string;
/**
* Name of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names
*/
"name"?: string;
/**
* Namespace of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/namespaces/
*/
"namespace"?: string;
}> | Exclude<{
/**
* Allowed value: The `name` field of a `Project` resource.
*/
"external": string;
/**
* Name of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names
*/
"name"?: string;
/**
* Namespace of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/namespaces/
*/
"namespace"?: string;
}, {
/**
* Allowed value: The `name` field of a `Project` resource.
*/
"external": string;
/**
* Name of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names
*/
"name"?: string;
/**
* Namespace of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/namespaces/
*/
"namespace"?: string;
} & ({
/**
* Allowed value: The `name` field of a `Project` resource.
*/
"external"?: string;
/**
* Name of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names
*/
"name": string;
/**
* Namespace of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/namespaces/
*/
"namespace"?: string;
} | {
/**
* Allowed value: The `name` field of a `Project` resource.
*/
"external"?: string;
/**
* Name of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names
*/
"name"?: string;
/**
* Namespace of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/namespaces/
*/
"namespace": string;
})>);
/**
* Immutable. Optional. The apiConfigId of the resource. Used for creation and acquisition. When unset, the value of `metadata.name` is used as the default.
*/
"resourceID"?: string;
};
"status"?: {
/**
* Conditions represent the latest available observation of the resource's current state.
*/
"conditions"?: Array<{
/**
* Last time the condition transitioned from one status to another.
*/
"lastTransitionTime"?: string;
/**
* Human-readable message indicating details about last transition.
*/
"message"?: string;
/**
* Unique, one-word, CamelCase reason for the condition's last transition.
*/
"reason"?: string;
/**
* Status is the status of the condition. Can be True, False, Unknown.
*/
"status"?: string;
/**
* Type is the type of the condition.
*/
"type"?: string;
}>;
/**
* The resource name of the API Config.
*/
"name"?: string;
/**
* ObservedGeneration is the generation of the resource that was most recently observed by the Config Connector controller. If this is equal to metadata.generation, then that means that the current reported status reflects the most recent desired state of the resource.
*/
"observedGeneration"?: number;
/**
* The ID of the associated Service Config (https://cloud.google.com/service-infrastructure/docs/glossary#config).
*/
"serviceConfigId"?: string;
};
}
export declare class APIGatewayAPIConfig extends Model<IAPIGatewayAPIConfig> implements IAPIGatewayAPIConfig {
"apiVersion": IAPIGatewayAPIConfig["apiVersion"];
"kind": IAPIGatewayAPIConfig["kind"];
"metadata"?: IAPIGatewayAPIConfig["metadata"];
"spec": IAPIGatewayAPIConfig["spec"];
"status"?: IAPIGatewayAPIConfig["status"];
static apiVersion: IAPIGatewayAPIConfig["apiVersion"];
static kind: IAPIGatewayAPIConfig["kind"];
static is: import("@kubernetes-models/base").TypeMetaGuard<IAPIGatewayAPIConfig>;
constructor(data?: ModelData<IAPIGatewayAPIConfig>);
}