syntax = "proto3";

package credentials;

option go_package = "github.com/trufflesecurity/trufflehog/v3/pkg/pb/credentialspb";

import "validate/validate.proto";

message Unauthenticated {}

message SSHAuth {}

message CloudEnvironment {}

message BasicAuth {
  string username = 1;
  string password = 2;
}

message Header {
  string key = 1;
  string value = 2;
}

message ClientCredentials {
  string tenant_id = 1;
  string client_id =2;
  string client_secret=3;
}

message ClientCertificate {
  string tenant_id = 1;
  string client_id =2;
  string certificate_path =3;
  string certificate_password =4;
}

message Oauth2 {
  string refresh_token = 1;
  string client_id = 2;
  string client_secret = 3;
  string access_token = 4;
  string redirect_uri = 5;
}

message KeySecret {
  string key = 1;
  string secret = 2;
}

message AWSSessionTokenSecret {
  string key = 1 [(validate.rules).string.min_len = 1];
  string secret = 2 [(validate.rules).string.min_len = 1];
  string session_token = 3 [(validate.rules).string.min_len = 1];
}

message AWS {
  string key = 1 [(validate.rules).string.min_len = 1];
  string secret = 2 [(validate.rules).string.min_len = 1];
  string region = 3;
}

message SES {
  AWS creds = 1;
  string sender = 2;
  repeated string recipients = 3;
}

message GitHubApp {
  string private_key = 1;
  string installation_id = 2;
  string app_id = 3;
}

message SlackTokens {
  string app_token = 1;
  string bot_token = 2;
  string client_token = 3;
}

message GoogleDriveDWD {
  string service_account_json = 1; 
  string admin_email = 2;  
  repeated string include_users = 3;  
  repeated string exclude_users = 4; 
}
