/*
Copyright © The ESO 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

    https://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 v1beta1

import (
	esmeta "github.com/external-secrets/external-secrets/apis/meta/v1"
)

// PassboltAuth contains credentials and configuration for authenticating with the Passbolt server.
type PassboltAuth struct {
	// PasswordSecretRef is a reference to the secret containing the Passbolt password
	PasswordSecretRef *esmeta.SecretKeySelector `json:"passwordSecretRef"`
	// PrivateKeySecretRef is a reference to the secret containing the Passbolt private key
	PrivateKeySecretRef *esmeta.SecretKeySelector `json:"privateKeySecretRef"`
}

// PassboltProvider defines configuration for the Passbolt provider.
type PassboltProvider struct {
	// Auth defines the information necessary to authenticate against Passbolt Server
	Auth *PassboltAuth `json:"auth"`
	// Host defines the Passbolt Server to connect to
	Host string `json:"host"`
}
