github.com/Venafi/vcert/v5@v5.10.2/pkg/domain/cloudproviders.go (about)

     1  package domain
     2  
     3  import (
     4  	"strings"
     5  )
     6  
     7  type CloudProviderStatus int
     8  
     9  const (
    10  	CloudProviderStatusUnknown CloudProviderStatus = iota
    11  	CloudProviderStatusValidated
    12  	CloudProviderStatusNotValidated
    13  
    14  	CloudProviderStatusValidatedStr    = "VALIDATED"
    15  	CloudProviderStatusNotValidatedStr = "NOT_VALIDATED"
    16  	CloudProviderStatusUnknownStr      = "UNKNOWN"
    17  )
    18  
    19  func (cps CloudProviderStatus) String() string {
    20  	switch cps {
    21  	case CloudProviderStatusValidated:
    22  		return CloudProviderStatusValidatedStr
    23  	case CloudProviderStatusNotValidated:
    24  		return CloudProviderStatusNotValidatedStr
    25  	case CloudProviderStatusUnknown:
    26  		fallthrough
    27  	default:
    28  		return CloudProviderStatusUnknownStr
    29  	}
    30  }
    31  
    32  func GetCloudProviderStatus(status string) CloudProviderStatus {
    33  	switch strings.ToUpper(status) {
    34  	case CloudProviderStatusValidatedStr:
    35  		return CloudProviderStatusValidated
    36  	case CloudProviderStatusNotValidatedStr:
    37  		return CloudProviderStatusNotValidated
    38  	default:
    39  		return CloudProviderStatusUnknown
    40  	}
    41  }
    42  
    43  type CloudProviderType int
    44  
    45  const (
    46  	CloudProviderTypeUnknown CloudProviderType = iota
    47  	CloudProviderTypeAWS
    48  	CloudProviderTypeAzure
    49  	CloudProviderTypeGCP
    50  
    51  	CloudProviderTypeAWSStr     = "AWS"
    52  	CloudProviderTypeAzureStr   = "AZURE"
    53  	CloudProviderTypeGCPStr     = "GCP"
    54  	CloudProviderTypeUnknownStr = "UNKNOWN"
    55  )
    56  
    57  func (cpt CloudProviderType) String() string {
    58  	switch cpt {
    59  	case CloudProviderTypeAWS:
    60  		return CloudProviderTypeAWSStr
    61  	case CloudProviderTypeAzure:
    62  		return CloudProviderTypeAzureStr
    63  	case CloudProviderTypeGCP:
    64  		return CloudProviderTypeGCPStr
    65  	case CloudProviderTypeUnknown:
    66  		fallthrough
    67  	default:
    68  		return CloudProviderTypeUnknownStr
    69  	}
    70  }
    71  
    72  type CloudProvider struct {
    73  	ID             string
    74  	Name           string
    75  	Type           CloudProviderType
    76  	Status         CloudProviderStatus
    77  	StatusDetails  string
    78  	KeystoresCount int
    79  }
    80  
    81  type GetCloudProviderRequest struct {
    82  	Name   string
    83  	Status CloudProviderStatus
    84  	Type   CloudProviderType
    85  }
    86  
    87  type CloudKeystoreType int
    88  
    89  const (
    90  	CloudKeystoreTypeUnknown CloudKeystoreType = iota
    91  	CloudKeystoreTypeACM
    92  	CloudKeystoreTypeAKV
    93  	CloudKeystoreTypeGCM
    94  
    95  	CloudKeystoreTypeACMStr     = "ACM"
    96  	CloudKeystoreTypeAKVStr     = "AKV"
    97  	CloudKeystoreTypeGCMStr     = "GCM"
    98  	CloudKeystoreTypeUnknownStr = "UNKNOWN"
    99  )
   100  
   101  func (ckt CloudKeystoreType) String() string {
   102  	switch ckt {
   103  	case CloudKeystoreTypeACM:
   104  		return CloudKeystoreTypeACMStr
   105  	case CloudKeystoreTypeAKV:
   106  		return CloudKeystoreTypeAKVStr
   107  	case CloudKeystoreTypeGCM:
   108  		return CloudKeystoreTypeGCMStr
   109  	case CloudKeystoreTypeUnknown:
   110  		fallthrough
   111  	default:
   112  		return CloudKeystoreTypeUnknownStr
   113  	}
   114  }
   115  
   116  type CloudKeystore struct {
   117  	ID                     string
   118  	Name                   string
   119  	Type                   CloudKeystoreType
   120  	MachineIdentitiesCount int
   121  }
   122  
   123  type ProvisioningResponse struct {
   124  	WorkflowId   string
   125  	WorkflowName string
   126  }
   127  
   128  type GetCloudKeystoreRequest struct {
   129  	CloudProviderID   *string
   130  	CloudProviderName *string
   131  	CloudKeystoreID   *string
   132  	CloudKeystoreName *string
   133  }
   134  
   135  type MachineIdentityStatus int
   136  
   137  const (
   138  	MachineIdentityStatusUnknown MachineIdentityStatus = iota
   139  	MachineIdentityStatusNew
   140  	MachineIdentityStatusPending
   141  	MachineIdentityStatusInstalled
   142  	MachineIdentityStatusDiscovered
   143  	MachineIdentityStatusValidated
   144  	MachineIdentityStatusMissing
   145  	MachineIdentityStatusFailed
   146  
   147  	MachineIdentityStatusUnknownStr    = "UNKNOWN"
   148  	MachineIdentityStatusNewStr        = "NEW"
   149  	MachineIdentityStatusPendingStr    = "PENDING"
   150  	MachineIdentityStatusInstalledStr  = "INSTALLED"
   151  	MachineIdentityStatusDiscoveredStr = "DISCOVERED"
   152  	MachineIdentityStatusValidatedStr  = "VALIDATED"
   153  	MachineIdentityStatusMissingStr    = "MISSING"
   154  	MachineIdentityStatusFailedStr     = "FAILED"
   155  )
   156  
   157  func (mis MachineIdentityStatus) String() string {
   158  	switch mis {
   159  	case MachineIdentityStatusNew:
   160  		return MachineIdentityStatusNewStr
   161  	case MachineIdentityStatusPending:
   162  		return MachineIdentityStatusPendingStr
   163  	case MachineIdentityStatusInstalled:
   164  		return MachineIdentityStatusInstalledStr
   165  	case MachineIdentityStatusDiscovered:
   166  		return MachineIdentityStatusDiscoveredStr
   167  	case MachineIdentityStatusValidated:
   168  		return MachineIdentityStatusValidatedStr
   169  	case MachineIdentityStatusMissing:
   170  		return MachineIdentityStatusMissingStr
   171  	case MachineIdentityStatusFailed:
   172  		return MachineIdentityStatusFailedStr
   173  	case MachineIdentityStatusUnknown:
   174  		fallthrough
   175  	default:
   176  		return MachineIdentityStatusUnknownStr
   177  	}
   178  }
   179  
   180  type CertificateCloudMetadata struct {
   181  	values map[string]interface{}
   182  }
   183  
   184  func NewCertificateCloudMetadata(values map[string]interface{}) CertificateCloudMetadata {
   185  	return CertificateCloudMetadata{
   186  		values: values,
   187  	}
   188  }
   189  
   190  func (ccm *CertificateCloudMetadata) GetKeystoreType() CloudKeystoreType {
   191  	typ := ccm.GetValue("__typename")
   192  	if typ == nil {
   193  		return CloudKeystoreTypeUnknown
   194  	}
   195  	switch typ {
   196  	case "AWSCertificateMetadata":
   197  		return CloudKeystoreTypeACM
   198  	case "AzureCertificateMetadata":
   199  		return CloudKeystoreTypeAKV
   200  	case "GCPCertificateMetadata":
   201  		return CloudKeystoreTypeGCM
   202  	default:
   203  		return CloudKeystoreTypeUnknown
   204  	}
   205  }
   206  
   207  func (ccm *CertificateCloudMetadata) GetMetadata() map[string]interface{} {
   208  	return ccm.values
   209  }
   210  
   211  func (ccm *CertificateCloudMetadata) GetValue(key string) interface{} {
   212  	if key == "" {
   213  		return nil
   214  	}
   215  	if ccm.values == nil {
   216  		return nil
   217  	}
   218  	return ccm.values[key]
   219  }
   220  
   221  type CloudMachineIdentity struct {
   222  	ID                string
   223  	CloudKeystoreID   string
   224  	CloudKeystoreName string
   225  	CloudProviderID   string
   226  	CloudProviderName string
   227  	CertificateID     string
   228  	Metadata          *CertificateCloudMetadata
   229  	Status            MachineIdentityStatus
   230  	StatusDetails     string
   231  }
   232  
   233  type GetCloudMachineIdentityRequest struct {
   234  	KeystoreID        *string
   235  	MachineIdentityID *string
   236  	Fingerprints      []string
   237  	NewlyDiscovered   *bool
   238  	Metadata          *string
   239  }