github.com/codeready-toolchain/api@v0.0.0-20240507023248-73662d6db2c5/api/v1alpha1/spacebindingrequest_types.go (about) 1 package v1alpha1 2 3 import ( 4 metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" 5 ) 6 7 const ( 8 // SpaceBindingRequestLabelKey is a label on the SpaceBinding, and will hold the name of the SpaceBindingRequest that created the SpaceBinding resource. 9 SpaceBindingRequestLabelKey = LabelKeyPrefix + "spacebindingrequest" 10 // SpaceBindingRequestNamespaceLabelKey is a label on the SpaceBinding, and will hold the namespace of the SpaceBindingRequest that created the SpaceBinding resource. 11 SpaceBindingRequestNamespaceLabelKey = LabelKeyPrefix + "spacebindingrequest-namespace" 12 13 // --- Status condition reasons --- 14 15 // SpaceBindingRequestTerminatingReason represents the reason for space binding request termination. 16 SpaceBindingRequestTerminatingReason = terminatingReason 17 18 // SpaceBindingRequestTerminatingFailedReason represents the reason for a failed space binding request termination. 19 SpaceBindingRequestTerminatingFailedReason = terminatingFailedReason 20 21 // SpaceBindingRequestUnableToCreateSpaceBindingReason represents the reason for a failed space binding creation. 22 SpaceBindingRequestUnableToCreateSpaceBindingReason = UnableToCreateSpaceBinding 23 24 // SpaceBindingRequestProvisioningReason represents the reason for space binding request provisioning. 25 SpaceBindingRequestProvisioningReason = provisioningReason 26 27 // SpaceBindingRequestProvisionedReason represents the reason for a successfully provisioned space binding request. 28 SpaceBindingRequestProvisionedReason = provisionedReason 29 ) 30 31 // SpaceBindingRequestSpec defines the desired state of SpaceBindingRequest 32 // +k8s:openapi-gen=true 33 type SpaceBindingRequestSpec struct { 34 // MasterUserRecord is a required property introduced to retain the name of the MUR 35 // for which this SpaceBinding is provisioned. 36 MasterUserRecord string `json:"masterUserRecord"` 37 38 // SpaceRole is a required property which defines the role that will be granted to the MUR in the current Space by the SpaceBinding resource. 39 SpaceRole string `json:"spaceRole"` 40 } 41 42 // SpaceBindingRequestStatus defines the observed state of SpaceBinding 43 // +k8s:openapi-gen=true 44 type SpaceBindingRequestStatus struct { 45 // Conditions is an array of SpaceBindingRequest conditions 46 // Supported condition types: 47 // Provisioning, SpaceBindingNotReady and Ready 48 // +optional 49 // +patchMergeKey=type 50 // +patchStrategy=merge 51 // +listType=map 52 // +listMapKey=type 53 Conditions []Condition `json:"conditions,omitempty" patchStrategy:"merge" patchMergeKey:"type"` 54 } 55 56 // +kubebuilder:object:root=true 57 // +kubebuilder:subresource:status 58 59 // SpaceBindingRequest is the Schema for the SpaceBindingRequest API 60 // +k8s:openapi-gen=true 61 // +kubebuilder:resource:scope=Namespaced 62 // +kubebuilder:printcolumn:name="MUR",type="string",JSONPath=`.spec.masterUserRecord` 63 // +kubebuilder:printcolumn:name="SpaceRole",type="string",JSONPath=`.spec.spaceRole` 64 // +kubebuilder:printcolumn:name="Ready",type="string",JSONPath=`.status.conditions[?(@.type=="Ready")].status` 65 // +kubebuilder:printcolumn:name="Reason",type="string",JSONPath=`.status.conditions[?(@.type=="Ready")].reason` 66 // +kubebuilder:validation:XPreserveUnknownFields 67 // +operator-sdk:gen-csv:customresourcedefinitions.displayName="SpaceBindingRequest" 68 type SpaceBindingRequest struct { 69 metav1.TypeMeta `json:",inline"` 70 metav1.ObjectMeta `json:"metadata,omitempty"` 71 72 Spec SpaceBindingRequestSpec `json:"spec,omitempty"` 73 Status SpaceBindingRequestStatus `json:"status,omitempty"` 74 } 75 76 //+kubebuilder:object:root=true 77 78 // SpaceBindingRequestList contains a list of SpaceBindingRequests 79 type SpaceBindingRequestList struct { 80 metav1.TypeMeta `json:",inline"` 81 metav1.ListMeta `json:"metadata,omitempty"` 82 Items []SpaceBindingRequest `json:"items"` 83 } 84 85 func init() { 86 SchemeBuilder.Register(&SpaceBindingRequest{}, &SpaceBindingRequestList{}) 87 }