Documentation
¶
Overview ¶
+kubebuilder:object:generate=true +groupName=codestarnotifications.aws.upbound.io +versionName=v1beta1
Index ¶
- Constants
- Variables
- type NotificationRule
- func (in *NotificationRule) DeepCopy() *NotificationRule
- func (in *NotificationRule) DeepCopyInto(out *NotificationRule)
- func (in *NotificationRule) DeepCopyObject() runtime.Object
- func (mg *NotificationRule) GetCondition(ct xpv1.ConditionType) xpv1.Condition
- func (tr *NotificationRule) GetConnectionDetailsMapping() map[string]string
- func (mg *NotificationRule) GetDeletionPolicy() xpv1.DeletionPolicy
- func (tr *NotificationRule) GetID() string
- func (tr *NotificationRule) GetInitParameters() (map[string]any, error)
- func (mg *NotificationRule) GetManagementPolicies() xpv1.ManagementPolicies
- func (tr *NotificationRule) GetMergedParameters(shouldMergeInitProvider bool) (map[string]any, error)
- func (tr *NotificationRule) GetObservation() (map[string]any, error)
- func (tr *NotificationRule) GetParameters() (map[string]any, error)
- func (mg *NotificationRule) GetProviderConfigReference() *xpv1.Reference
- func (mg *NotificationRule) GetPublishConnectionDetailsTo() *xpv1.PublishConnectionDetailsTo
- func (mg *NotificationRule) GetTerraformResourceType() string
- func (tr *NotificationRule) GetTerraformSchemaVersion() int
- func (mg *NotificationRule) GetWriteConnectionSecretToReference() *xpv1.SecretReference
- func (tr *NotificationRule) Hub()
- func (tr *NotificationRule) LateInitialize(attrs []byte) (bool, error)
- func (mg *NotificationRule) ResolveReferences(ctx context.Context, c client.Reader) error
- func (mg *NotificationRule) SetConditions(c ...xpv1.Condition)
- func (mg *NotificationRule) SetDeletionPolicy(r xpv1.DeletionPolicy)
- func (mg *NotificationRule) SetManagementPolicies(r xpv1.ManagementPolicies)
- func (tr *NotificationRule) SetObservation(obs map[string]any) error
- func (tr *NotificationRule) SetParameters(params map[string]any) error
- func (mg *NotificationRule) SetProviderConfigReference(r *xpv1.Reference)
- func (mg *NotificationRule) SetPublishConnectionDetailsTo(r *xpv1.PublishConnectionDetailsTo)
- func (mg *NotificationRule) SetWriteConnectionSecretToReference(r *xpv1.SecretReference)
- type NotificationRuleInitParameters
- type NotificationRuleList
- type NotificationRuleObservation
- type NotificationRuleParameters
- type NotificationRuleSpec
- type NotificationRuleStatus
- type TargetInitParameters
- type TargetObservation
- type TargetParameters
Constants ¶
const ( CRDGroup = "codestarnotifications.aws.upbound.io" CRDVersion = "v1beta1" )
Package type metadata.
Variables ¶
var ( // CRDGroupVersion is the API Group Version used to register the objects CRDGroupVersion = schema.GroupVersion{Group: CRDGroup, Version: CRDVersion} // SchemeBuilder is used to add go types to the GroupVersionKind scheme SchemeBuilder = &scheme.Builder{GroupVersion: CRDGroupVersion} // AddToScheme adds the types in this group-version to the given scheme. AddToScheme = SchemeBuilder.AddToScheme )
var ( NotificationRule_Kind = "NotificationRule" NotificationRule_GroupKind = schema.GroupKind{Group: CRDGroup, Kind: NotificationRule_Kind}.String() NotificationRule_KindAPIVersion = NotificationRule_Kind + "." + CRDGroupVersion.String() NotificationRule_GroupVersionKind = CRDGroupVersion.WithKind(NotificationRule_Kind) )
Repository type metadata.
Functions ¶
This section is empty.
Types ¶
type NotificationRule ¶
type NotificationRule struct {
metav1.TypeMeta `json:",inline"`
metav1.ObjectMeta `json:"metadata,omitempty"`
// +kubebuilder:validation:XValidation:rule="!('*' in self.managementPolicies || 'Create' in self.managementPolicies || 'Update' in self.managementPolicies) || has(self.forProvider.detailType) || (has(self.initProvider) && has(self.initProvider.detailType))",message="spec.forProvider.detailType is a required parameter"
// +kubebuilder:validation:XValidation:rule="!('*' in self.managementPolicies || 'Create' in self.managementPolicies || 'Update' in self.managementPolicies) || has(self.forProvider.eventTypeIds) || (has(self.initProvider) && has(self.initProvider.eventTypeIds))",message="spec.forProvider.eventTypeIds is a required parameter"
// +kubebuilder:validation:XValidation:rule="!('*' in self.managementPolicies || 'Create' in self.managementPolicies || 'Update' in self.managementPolicies) || has(self.forProvider.name) || (has(self.initProvider) && has(self.initProvider.name))",message="spec.forProvider.name is a required parameter"
Spec NotificationRuleSpec `json:"spec"`
Status NotificationRuleStatus `json:"status,omitempty"`
}
NotificationRule is the Schema for the NotificationRules API. Provides a CodeStar Notifications Rule +kubebuilder:printcolumn:name="SYNCED",type="string",JSONPath=".status.conditions[?(@.type=='Synced')].status" +kubebuilder:printcolumn:name="READY",type="string",JSONPath=".status.conditions[?(@.type=='Ready')].status" +kubebuilder:printcolumn:name="EXTERNAL-NAME",type="string",JSONPath=".metadata.annotations.crossplane\\.io/external-name" +kubebuilder:printcolumn:name="AGE",type="date",JSONPath=".metadata.creationTimestamp" +kubebuilder:resource:scope=Cluster,categories={crossplane,managed,aws}
func (*NotificationRule) DeepCopy ¶
func (in *NotificationRule) DeepCopy() *NotificationRule
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new NotificationRule.
func (*NotificationRule) DeepCopyInto ¶
func (in *NotificationRule) DeepCopyInto(out *NotificationRule)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
func (*NotificationRule) DeepCopyObject ¶
func (in *NotificationRule) DeepCopyObject() runtime.Object
DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object.
func (*NotificationRule) GetCondition ¶
func (mg *NotificationRule) GetCondition(ct xpv1.ConditionType) xpv1.Condition
GetCondition of this NotificationRule.
func (*NotificationRule) GetConnectionDetailsMapping ¶
func (tr *NotificationRule) GetConnectionDetailsMapping() map[string]string
GetConnectionDetailsMapping for this NotificationRule
func (*NotificationRule) GetDeletionPolicy ¶
func (mg *NotificationRule) GetDeletionPolicy() xpv1.DeletionPolicy
GetDeletionPolicy of this NotificationRule.
func (*NotificationRule) GetID ¶
func (tr *NotificationRule) GetID() string
GetID returns ID of underlying Terraform resource of this NotificationRule
func (*NotificationRule) GetInitParameters ¶ added in v0.38.0
func (tr *NotificationRule) GetInitParameters() (map[string]any, error)
GetInitParameters of this NotificationRule
func (*NotificationRule) GetManagementPolicies ¶ added in v0.38.0
func (mg *NotificationRule) GetManagementPolicies() xpv1.ManagementPolicies
GetManagementPolicies of this NotificationRule.
func (*NotificationRule) GetMergedParameters ¶ added in v0.44.0
func (tr *NotificationRule) GetMergedParameters(shouldMergeInitProvider bool) (map[string]any, error)
GetInitParameters of this NotificationRule
func (*NotificationRule) GetObservation ¶
func (tr *NotificationRule) GetObservation() (map[string]any, error)
GetObservation of this NotificationRule
func (*NotificationRule) GetParameters ¶
func (tr *NotificationRule) GetParameters() (map[string]any, error)
GetParameters of this NotificationRule
func (*NotificationRule) GetProviderConfigReference ¶
func (mg *NotificationRule) GetProviderConfigReference() *xpv1.Reference
GetProviderConfigReference of this NotificationRule.
func (*NotificationRule) GetPublishConnectionDetailsTo ¶
func (mg *NotificationRule) GetPublishConnectionDetailsTo() *xpv1.PublishConnectionDetailsTo
GetPublishConnectionDetailsTo of this NotificationRule.
func (*NotificationRule) GetTerraformResourceType ¶
func (mg *NotificationRule) GetTerraformResourceType() string
GetTerraformResourceType returns Terraform resource type for this NotificationRule
func (*NotificationRule) GetTerraformSchemaVersion ¶
func (tr *NotificationRule) GetTerraformSchemaVersion() int
GetTerraformSchemaVersion returns the associated Terraform schema version
func (*NotificationRule) GetWriteConnectionSecretToReference ¶
func (mg *NotificationRule) GetWriteConnectionSecretToReference() *xpv1.SecretReference
GetWriteConnectionSecretToReference of this NotificationRule.
func (*NotificationRule) Hub ¶ added in v0.47.2
func (tr *NotificationRule) Hub()
Hub marks this type as a conversion hub.
func (*NotificationRule) LateInitialize ¶
func (tr *NotificationRule) LateInitialize(attrs []byte) (bool, error)
LateInitialize this NotificationRule using its observed tfState. returns True if there are any spec changes for the resource.
func (*NotificationRule) ResolveReferences ¶
func (*NotificationRule) SetConditions ¶
func (mg *NotificationRule) SetConditions(c ...xpv1.Condition)
SetConditions of this NotificationRule.
func (*NotificationRule) SetDeletionPolicy ¶
func (mg *NotificationRule) SetDeletionPolicy(r xpv1.DeletionPolicy)
SetDeletionPolicy of this NotificationRule.
func (*NotificationRule) SetManagementPolicies ¶ added in v0.38.0
func (mg *NotificationRule) SetManagementPolicies(r xpv1.ManagementPolicies)
SetManagementPolicies of this NotificationRule.
func (*NotificationRule) SetObservation ¶
func (tr *NotificationRule) SetObservation(obs map[string]any) error
SetObservation for this NotificationRule
func (*NotificationRule) SetParameters ¶
func (tr *NotificationRule) SetParameters(params map[string]any) error
SetParameters for this NotificationRule
func (*NotificationRule) SetProviderConfigReference ¶
func (mg *NotificationRule) SetProviderConfigReference(r *xpv1.Reference)
SetProviderConfigReference of this NotificationRule.
func (*NotificationRule) SetPublishConnectionDetailsTo ¶
func (mg *NotificationRule) SetPublishConnectionDetailsTo(r *xpv1.PublishConnectionDetailsTo)
SetPublishConnectionDetailsTo of this NotificationRule.
func (*NotificationRule) SetWriteConnectionSecretToReference ¶
func (mg *NotificationRule) SetWriteConnectionSecretToReference(r *xpv1.SecretReference)
SetWriteConnectionSecretToReference of this NotificationRule.
type NotificationRuleInitParameters ¶ added in v0.38.0
type NotificationRuleInitParameters struct {
// The level of detail to include in the notifications for this resource. Possible values are BASIC and FULL.
DetailType *string `json:"detailType,omitempty" tf:"detail_type,omitempty"`
// A list of event types associated with this notification rule.
// For list of allowed events see here.
// +listType=set
EventTypeIds []*string `json:"eventTypeIds,omitempty" tf:"event_type_ids,omitempty"`
// The name of notification rule.
Name *string `json:"name,omitempty" tf:"name,omitempty"`
// The ARN of the resource to associate with the notification rule.
// +crossplane:generate:reference:type=github.com/upbound/provider-aws/apis/codecommit/v1beta1.Repository
// +crossplane:generate:reference:extractor=github.com/crossplane/upjet/pkg/resource.ExtractParamPath("arn",true)
Resource *string `json:"resource,omitempty" tf:"resource,omitempty"`
// Reference to a Repository in codecommit to populate resource.
// +kubebuilder:validation:Optional
ResourceRef *v1.Reference `json:"resourceRef,omitempty" tf:"-"`
// Selector for a Repository in codecommit to populate resource.
// +kubebuilder:validation:Optional
ResourceSelector *v1.Selector `json:"resourceSelector,omitempty" tf:"-"`
// The status of the notification rule. Possible values are ENABLED and DISABLED, default is ENABLED.
Status *string `json:"status,omitempty" tf:"status,omitempty"`
// Key-value map of resource tags.
// +mapType=granular
Tags map[string]*string `json:"tags,omitempty" tf:"tags,omitempty"`
// Configuration blocks containing notification target information. Can be specified multiple times. At least one target must be specified on creation.
Target []TargetInitParameters `json:"target,omitempty" tf:"target,omitempty"`
}
func (*NotificationRuleInitParameters) DeepCopy ¶ added in v0.38.0
func (in *NotificationRuleInitParameters) DeepCopy() *NotificationRuleInitParameters
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new NotificationRuleInitParameters.
func (*NotificationRuleInitParameters) DeepCopyInto ¶ added in v0.38.0
func (in *NotificationRuleInitParameters) DeepCopyInto(out *NotificationRuleInitParameters)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
type NotificationRuleList ¶
type NotificationRuleList struct {
metav1.TypeMeta `json:",inline"`
metav1.ListMeta `json:"metadata,omitempty"`
Items []NotificationRule `json:"items"`
}
NotificationRuleList contains a list of NotificationRules
func (*NotificationRuleList) DeepCopy ¶
func (in *NotificationRuleList) DeepCopy() *NotificationRuleList
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new NotificationRuleList.
func (*NotificationRuleList) DeepCopyInto ¶
func (in *NotificationRuleList) DeepCopyInto(out *NotificationRuleList)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
func (*NotificationRuleList) DeepCopyObject ¶
func (in *NotificationRuleList) DeepCopyObject() runtime.Object
DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object.
func (*NotificationRuleList) GetItems ¶
func (l *NotificationRuleList) GetItems() []resource.Managed
GetItems of this NotificationRuleList.
type NotificationRuleObservation ¶
type NotificationRuleObservation struct {
// The codestar notification rule ARN.
Arn *string `json:"arn,omitempty" tf:"arn,omitempty"`
// The level of detail to include in the notifications for this resource. Possible values are BASIC and FULL.
DetailType *string `json:"detailType,omitempty" tf:"detail_type,omitempty"`
// A list of event types associated with this notification rule.
// For list of allowed events see here.
// +listType=set
EventTypeIds []*string `json:"eventTypeIds,omitempty" tf:"event_type_ids,omitempty"`
// The codestar notification rule ARN.
ID *string `json:"id,omitempty" tf:"id,omitempty"`
// The name of notification rule.
Name *string `json:"name,omitempty" tf:"name,omitempty"`
// The ARN of the resource to associate with the notification rule.
Resource *string `json:"resource,omitempty" tf:"resource,omitempty"`
// The status of the notification rule. Possible values are ENABLED and DISABLED, default is ENABLED.
Status *string `json:"status,omitempty" tf:"status,omitempty"`
// Key-value map of resource tags.
// +mapType=granular
Tags map[string]*string `json:"tags,omitempty" tf:"tags,omitempty"`
// A map of tags assigned to the resource, including those inherited from the provider default_tags configuration block.
// +mapType=granular
TagsAll map[string]*string `json:"tagsAll,omitempty" tf:"tags_all,omitempty"`
// Configuration blocks containing notification target information. Can be specified multiple times. At least one target must be specified on creation.
Target []TargetObservation `json:"target,omitempty" tf:"target,omitempty"`
}
func (*NotificationRuleObservation) DeepCopy ¶
func (in *NotificationRuleObservation) DeepCopy() *NotificationRuleObservation
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new NotificationRuleObservation.
func (*NotificationRuleObservation) DeepCopyInto ¶
func (in *NotificationRuleObservation) DeepCopyInto(out *NotificationRuleObservation)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
type NotificationRuleParameters ¶
type NotificationRuleParameters struct {
// The level of detail to include in the notifications for this resource. Possible values are BASIC and FULL.
// +kubebuilder:validation:Optional
DetailType *string `json:"detailType,omitempty" tf:"detail_type,omitempty"`
// A list of event types associated with this notification rule.
// For list of allowed events see here.
// +kubebuilder:validation:Optional
// +listType=set
EventTypeIds []*string `json:"eventTypeIds,omitempty" tf:"event_type_ids,omitempty"`
// The name of notification rule.
// +kubebuilder:validation:Optional
Name *string `json:"name,omitempty" tf:"name,omitempty"`
// Region is the region you'd like your resource to be created in.
// +upjet:crd:field:TFTag=-
// +kubebuilder:validation:Required
Region *string `json:"region" tf:"-"`
// The ARN of the resource to associate with the notification rule.
// +crossplane:generate:reference:type=github.com/upbound/provider-aws/apis/codecommit/v1beta1.Repository
// +crossplane:generate:reference:extractor=github.com/crossplane/upjet/pkg/resource.ExtractParamPath("arn",true)
// +kubebuilder:validation:Optional
Resource *string `json:"resource,omitempty" tf:"resource,omitempty"`
// Reference to a Repository in codecommit to populate resource.
// +kubebuilder:validation:Optional
ResourceRef *v1.Reference `json:"resourceRef,omitempty" tf:"-"`
// Selector for a Repository in codecommit to populate resource.
// +kubebuilder:validation:Optional
ResourceSelector *v1.Selector `json:"resourceSelector,omitempty" tf:"-"`
// The status of the notification rule. Possible values are ENABLED and DISABLED, default is ENABLED.
// +kubebuilder:validation:Optional
Status *string `json:"status,omitempty" tf:"status,omitempty"`
// Key-value map of resource tags.
// +kubebuilder:validation:Optional
// +mapType=granular
Tags map[string]*string `json:"tags,omitempty" tf:"tags,omitempty"`
// Configuration blocks containing notification target information. Can be specified multiple times. At least one target must be specified on creation.
// +kubebuilder:validation:Optional
Target []TargetParameters `json:"target,omitempty" tf:"target,omitempty"`
}
func (*NotificationRuleParameters) DeepCopy ¶
func (in *NotificationRuleParameters) DeepCopy() *NotificationRuleParameters
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new NotificationRuleParameters.
func (*NotificationRuleParameters) DeepCopyInto ¶
func (in *NotificationRuleParameters) DeepCopyInto(out *NotificationRuleParameters)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
type NotificationRuleSpec ¶
type NotificationRuleSpec struct {
v1.ResourceSpec `json:",inline"`
ForProvider NotificationRuleParameters `json:"forProvider"`
// THIS IS A BETA FIELD. It will be honored
// unless the Management Policies feature flag is disabled.
// InitProvider holds the same fields as ForProvider, with the exception
// of Identifier and other resource reference fields. The fields that are
// in InitProvider are merged into ForProvider when the resource is created.
// The same fields are also added to the terraform ignore_changes hook, to
// avoid updating them after creation. This is useful for fields that are
// required on creation, but we do not desire to update them after creation,
// for example because of an external controller is managing them, like an
// autoscaler.
InitProvider NotificationRuleInitParameters `json:"initProvider,omitempty"`
}
NotificationRuleSpec defines the desired state of NotificationRule
func (*NotificationRuleSpec) DeepCopy ¶
func (in *NotificationRuleSpec) DeepCopy() *NotificationRuleSpec
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new NotificationRuleSpec.
func (*NotificationRuleSpec) DeepCopyInto ¶
func (in *NotificationRuleSpec) DeepCopyInto(out *NotificationRuleSpec)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
type NotificationRuleStatus ¶
type NotificationRuleStatus struct {
v1.ResourceStatus `json:",inline"`
AtProvider NotificationRuleObservation `json:"atProvider,omitempty"`
}
NotificationRuleStatus defines the observed state of NotificationRule.
func (*NotificationRuleStatus) DeepCopy ¶
func (in *NotificationRuleStatus) DeepCopy() *NotificationRuleStatus
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new NotificationRuleStatus.
func (*NotificationRuleStatus) DeepCopyInto ¶
func (in *NotificationRuleStatus) DeepCopyInto(out *NotificationRuleStatus)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
type TargetInitParameters ¶ added in v0.38.0
type TargetInitParameters struct {
// The ARN of notification rule target. For example, a SNS Topic ARN.
// +crossplane:generate:reference:type=github.com/upbound/provider-aws/apis/sns/v1beta1.Topic
// +crossplane:generate:reference:extractor=github.com/crossplane/upjet/pkg/resource.ExtractParamPath("arn",true)
Address *string `json:"address,omitempty" tf:"address,omitempty"`
// Reference to a Topic in sns to populate address.
// +kubebuilder:validation:Optional
AddressRef *v1.Reference `json:"addressRef,omitempty" tf:"-"`
// Selector for a Topic in sns to populate address.
// +kubebuilder:validation:Optional
AddressSelector *v1.Selector `json:"addressSelector,omitempty" tf:"-"`
// The type of the notification target. Default value is SNS.
Type *string `json:"type,omitempty" tf:"type,omitempty"`
}
func (*TargetInitParameters) DeepCopy ¶ added in v0.38.0
func (in *TargetInitParameters) DeepCopy() *TargetInitParameters
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new TargetInitParameters.
func (*TargetInitParameters) DeepCopyInto ¶ added in v0.38.0
func (in *TargetInitParameters) DeepCopyInto(out *TargetInitParameters)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
type TargetObservation ¶
type TargetObservation struct {
// The ARN of notification rule target. For example, a SNS Topic ARN.
Address *string `json:"address,omitempty" tf:"address,omitempty"`
// The status of the notification rule. Possible values are ENABLED and DISABLED, default is ENABLED.
Status *string `json:"status,omitempty" tf:"status,omitempty"`
// The type of the notification target. Default value is SNS.
Type *string `json:"type,omitempty" tf:"type,omitempty"`
}
func (*TargetObservation) DeepCopy ¶
func (in *TargetObservation) DeepCopy() *TargetObservation
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new TargetObservation.
func (*TargetObservation) DeepCopyInto ¶
func (in *TargetObservation) DeepCopyInto(out *TargetObservation)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
type TargetParameters ¶
type TargetParameters struct {
// The ARN of notification rule target. For example, a SNS Topic ARN.
// +crossplane:generate:reference:type=github.com/upbound/provider-aws/apis/sns/v1beta1.Topic
// +crossplane:generate:reference:extractor=github.com/crossplane/upjet/pkg/resource.ExtractParamPath("arn",true)
// +kubebuilder:validation:Optional
Address *string `json:"address,omitempty" tf:"address,omitempty"`
// Reference to a Topic in sns to populate address.
// +kubebuilder:validation:Optional
AddressRef *v1.Reference `json:"addressRef,omitempty" tf:"-"`
// Selector for a Topic in sns to populate address.
// +kubebuilder:validation:Optional
AddressSelector *v1.Selector `json:"addressSelector,omitempty" tf:"-"`
// The type of the notification target. Default value is SNS.
// +kubebuilder:validation:Optional
Type *string `json:"type,omitempty" tf:"type,omitempty"`
}
func (*TargetParameters) DeepCopy ¶
func (in *TargetParameters) DeepCopy() *TargetParameters
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new TargetParameters.
func (*TargetParameters) DeepCopyInto ¶
func (in *TargetParameters) DeepCopyInto(out *TargetParameters)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.