/* Copyright 2019 The Crossplane Authors. Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at http://www.apache.org/licenses/LICENSE-2.0 Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the specific language governing permissions and limitations under the License. */ package v2 import ( "github.com/crossplane/crossplane-runtime/apis/common" ) // A ManagedResourceSpec defines the desired state of a managed resource. type ManagedResourceSpec struct { // WriteConnectionSecretToReference specifies the namespace and name of a // Secret to which any connection details for this managed resource should // be written. Connection details frequently include the endpoint, username, // and password required to connect to the managed resource. // +optional WriteConnectionSecretToReference *common.LocalSecretReference `json:"writeConnectionSecretToRef,omitempty"` // ProviderConfigReference specifies how the provider that will be used to // create, observe, update, and delete this managed resource should be // configured. // +kubebuilder:default={"kind": "ClusterProviderConfig", "name": "default"} ProviderConfigReference *common.ProviderConfigReference `json:"providerConfigRef,omitempty"` // THIS IS A BETA FIELD. It is on by default but can be opted out // through a Crossplane feature flag. // ManagementPolicies specify the array of actions Crossplane is allowed to // take on the managed and external resources. // See the design doc for more information: https://github.com/crossplane/crossplane/blob/499895a25d1a1a0ba1604944ef98ac7a1a71f197/design/design-doc-observe-only-resources.md?plain=1#L223 // and this one: https://github.com/crossplane/crossplane/blob/444267e84783136daa93568b364a5f01228cacbe/design/one-pager-ignore-changes.md // +optional // +kubebuilder:default={"*"} ManagementPolicies common.ManagementPolicies `json:"managementPolicies,omitempty"` } // A TypedProviderConfigUsage is a record that a particular managed resource is using // a particular provider configuration. type TypedProviderConfigUsage = common.TypedProviderConfigUsage