github.com/Venafi/vcert/v5@v5.10.2/pkg/playbook/app/installer/installer.go (about) 1 /* 2 * Copyright 2023 Venafi, Inc. 3 * 4 * Licensed under the Apache License, Version 2.0 (the "License"); 5 * you may not use this file except in compliance with the License. 6 * You may obtain a copy of the License at 7 * 8 * http://www.apache.org/licenses/LICENSE-2.0 9 * 10 * Unless required by applicable law or agreed to in writing, software 11 * distributed under the License is distributed on an "AS IS" BASIS, 12 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13 * See the License for the specific language governing permissions and 14 * limitations under the License. 15 */ 16 17 package installer 18 19 import ( 20 "github.com/Venafi/vcert/v5/pkg/certificate" 21 "github.com/Venafi/vcert/v5/pkg/playbook/app/domain" 22 ) 23 24 // Installer represents the interface for all installers. 25 // A new Installer must implement this interface to be picked up. 26 type Installer interface { 27 28 // Check is the method in charge of making the validations to install a new certificate: 29 // 1. Does the certificate exists? > Install if it doesn't. 30 // 2. Does the certificate is about to expire? Renew if about to expire. 31 // Returns true if the certificate needs to be installed. 32 Check(renewBefore string, request domain.PlaybookRequest) (bool, error) 33 34 // Backup takes the certificate request and backs up the current version prior to overwriting 35 Backup() error 36 37 // Install takes the certificate bundle and moves it to the location specified in the installer 38 Install(pcc certificate.PEMCollection) error 39 40 // AfterInstallActions runs any instructions declared in the Installer on a terminal. 41 // 42 // No validations happen over the content of the AfterAction string, so caution is advised 43 AfterInstallActions() (string, error) 44 45 // InstallValidationActions runs any instructions declared in the Installer on a terminal and expects 46 // "0" for successful validation and "1" for a validation failure 47 // No validations happen over the content of the InstallValidation string, so caution is advised 48 InstallValidationActions() (string, error) 49 }