diff --git a/account.proto b/account.proto index 29c4014..215b929 100644 --- a/account.proto +++ b/account.proto @@ -347,6 +347,8 @@ message SourceHealth { repeated string availableTypes = 11; // The scopes that this source can discover repeated string availableScopes = 12; + // AdapterMetadata is a map of metadata that the source can send to the API + repeated AdapterMetadata adapterMetadata = 13; } message ListAllSourcesStatusResponse { @@ -373,6 +375,32 @@ message SubmitSourceHeartbeatRequest { repeated string availableTypes = 8; // The scopes that this source can discover repeated string availableScopes = 9; + // AdapterMetadata is a map of metadata that the source can send to the API + repeated AdapterMetadata adapterMetadata = 10; +} + +message AdapterMetadata { + string type = 1; // rdap-domain // computer readable + string group = 2; // aws / gcp / azure / k8s // overall source + AdapterCategory category = 3; // compute / storage / network / database / k8s / other + repeated string links = 4; // links to other Source types, eg aws_eks_node_group -> aws_eks_cluster + string name = 5; // RDAP Domain // human readable + string adapterDescription = 6; // full description of this item + string getDescription = 7; // description of the Get method + string listDescription = 8; // description of the List method + string searchDescription = 9; // description of the Search method + string terraformMethod = 10; // eg get + string terraformQueryMap = 11; // eg ap aws_eks_node_group.arn + string terraformScope = 12; // eg ${provider_mapping.cluster_name}.${values.metadata[0].namespace} +} + +enum AdapterCategory { + ADAPTER_CATEGORY_UNSPECIFIED = 0; + ADAPTER_CATEGORY_COMPUTE = 1; + ADAPTER_CATEGORY_STORAGE = 2; + ADAPTER_CATEGORY_NETWORK = 3; + ADAPTER_CATEGORY_SECURITY = 4; + ADAPTER_CATEGORY_OTHER = 5; } message SubmitSourceHeartbeatResponse {}