syntax = "proto3";

package ocsf.v1_2_0.objects;

option go_package = "/ocsf/v1_2_0/objects";

option java_package = "com.your.project.generated.ocsf.v1_2_0.objects";

option java_multiple_files = true;

import "ocsf/v1_2_0/objects/enums/enums.proto";

message Policy {
	string version = 1; // Caption: Version;
	bool is_applied = 2; // Caption: Applied;
	string desc = 3; // Caption: Description;
	ocsf.v1_2_0.objects.Group group = 4; // Caption: Group;
	string name = 5; // Caption: Name;
	string uid = 6; // Caption: Unique ID;
}

message RegValue {
	int64 modified_time = 1; // Caption: Modified Time;
	string name = 2; // Caption: Name;
	string path = 3; // Caption: Path;
	string type = 4; // Caption: Type;
	ocsf.v1_2_0.objects.enums.REG_VALUE_TYPE_ID type_id = 5; // Caption: Type ID;
	string data = 6; // Caption: Data;
	bool is_default = 7; // Caption: Default Value;
	bool is_system = 8; // Caption: System;
}

message AffectedPackage {
	string architecture = 1; // Caption: Architecture;
	int32 epoch = 2; // Caption: Epoch;
	string path = 3; // Caption: Path;
	ocsf.v1_2_0.objects.Remediation remediation = 4; // Caption: Remediation Guidance;
	string version = 5; // Caption: Version;
	string release = 6; // Caption: Software Release Details;
	string license = 7; // Caption: Software License;
	string name = 8; // Caption: Name;
	string fixed_in_version = 9; // Caption: Fixed In Version;
	string package_manager = 10; // Caption: Package Manager;
	string purl = 11; // Caption: Package URL;
}

message Epss {
	int64 created_time = 1; // Caption: Created Time;
	float percentile = 2; // Caption: EPSS Percentile;
	string score = 3; // Caption: Reputation Score;
	string version = 4; // Caption: Version;
}

message ManagedEntity {
	string name = 1; // Caption: Name;
	string type = 2; // Caption: Type;
	string uid = 3; // Caption: Unique ID;
	string version = 4; // Caption: Version;
	string data = 5; // Caption: Data;
}

message Account {
	string uid = 1; // Caption: Unique ID;
	repeated string labels = 2; // Caption: Labels;
	string name = 3; // Caption: Name;
	string type = 4; // Caption: Type;
	ocsf.v1_2_0.objects.enums.ACCOUNT_TYPE_ID type_id = 5; // Caption: Type ID;
}

message Agent {
	string uid = 1; // Caption: Unique ID;
	string uid_alt = 2; // Caption: Alternate ID;
	string version = 3; // Caption: Version;
	string vendor_name = 4; // Caption: Vendor Name;
	string name = 5; // Caption: Name;
	repeated ocsf.v1_2_0.objects.Policy policies = 6; // Caption: Policies;
	ocsf.v1_2_0.objects.enums.AGENT_TYPE_ID type_id = 7; // Caption: Type ID;
	string type = 8; // Caption: Type;
}

message KbArticle {
	string classification = 1; // Caption: Classification;
	string title = 2; // Caption: Title;
	string severity = 3; // Caption: Severity;
	string src_url = 4; // Caption: Source URL;
	string uid = 5; // Caption: Unique ID;
	ocsf.v1_2_0.objects.Os os = 6; // Caption: OS;
	int64 size = 7; // Caption: Size;
	ocsf.v1_2_0.objects.Product product = 8; // Caption: Product;
	string bulletin = 9; // Caption: Patch Bulletin;
	bool is_superseded = 10; // Caption: The patch is superseded.;
	int64 created_time = 11; // Caption: Created Time;
}

message DnsQuery {
	string hostname = 1; // Caption: Hostname;
	string opcode = 2; // Caption: DNS Opcode;
	ocsf.v1_2_0.objects.enums.DNS_QUERY_OPCODE_ID opcode_id = 3; // Caption: DNS Opcode ID;
	string class = 4; // Caption: Class;
	int32 packet_uid = 5; // Caption: Packet UID;
	string type = 6; // Caption: Type;
}

message Tls {
	int32 handshake_dur = 1; // Caption: Handshake Duration;
	int32 alert = 2; // Caption: Client TLS Alert;
	ocsf.v1_2_0.objects.Fingerprint ja3s_hash = 3; // Caption: JA3S Hash;
	string version = 4; // Caption: Version;
	repeated string certificate_chain = 5; // Caption: Certificate Chain;
	repeated ocsf.v1_2_0.objects.San sans = 6; // Caption: Subject Alternative Names;
	ocsf.v1_2_0.objects.Fingerprint ja3_hash = 7; // Caption: JA3 Hash;
	ocsf.v1_2_0.objects.Certificate certificate = 8; // Caption: Certificate;
	string cipher = 9; // Caption: Cipher Suite;
	repeated ocsf.v1_2_0.objects.TlsExtension extension_list = 10; // Caption: Extension List;
	repeated string server_ciphers = 11; // Caption: Server Cipher Suites;
	string sni = 12; // Caption: Server Name Indication;
	repeated string client_ciphers = 13; // Caption: Client Cipher Suites;
	repeated ocsf.v1_2_0.objects.TlsExtension tls_extension_list = 14; // Caption: TLS Extension List;
	int32 key_length = 15; // Caption: Key Length;
}

message RegKey {
	bool is_system = 1; // Caption: System;
	int64 modified_time = 2; // Caption: Modified Time;
	string path = 3; // Caption: Path;
	string security_descriptor = 4; // Caption: Security Descriptor;
}

message Response {
	string error = 1; // Caption: Error Code;
	string error_message = 2; // Caption: Error Message;
	repeated string flags = 3; // Caption: Flags;
	string message = 4; // Caption: Message;
	int32 code = 5; // Caption: Response Code;
	repeated ocsf.v1_2_0.objects.Container containers = 6; // Caption: Containers;
	string data = 7; // Caption: Data;
}

message Observable {
	string name = 1; // Caption: Name;
	ocsf.v1_2_0.objects.Reputation reputation = 2; // Caption: Reputation Scores;
	string type = 3; // Caption: Type;
	ocsf.v1_2_0.objects.enums.OBSERVABLE_TYPE_ID type_id = 4; // Caption: Type ID;
	string value = 5; // Caption: Value;
}

message Tactic {
	string src_url = 1; // Caption: Source URL;
	string uid = 2; // Caption: Unique ID;
	string name = 3; // Caption: Name;
}

message Hassh {
	string algorithm = 1; // Caption: Algorithm;
	ocsf.v1_2_0.objects.Fingerprint fingerprint = 2; // Caption: Fingerprint;
}

message Request {
	string uid = 1; // Caption: Unique ID;
	repeated ocsf.v1_2_0.objects.Container containers = 2; // Caption: Containers;
	string data = 3; // Caption: Data;
	repeated string flags = 4; // Caption: Flags;
}

message WebResource {
	repeated string labels = 1; // Caption: Labels;
	string data = 2; // Caption: Data;
	string desc = 3; // Caption: Description;
	string name = 4; // Caption: Name;
	string type = 5; // Caption: Type;
	string uid = 6; // Caption: Unique ID;
	string url_string = 7; // Caption: URL String;
	ocsf.v1_2_0.objects.DataClassification data_classification = 8; // Caption: Data Classification; Profile: data_classification;
}

message CisCsc {
	string control = 1; // Caption: Security Control;
	string version = 2; // Caption: Version;
}

message RpcInterface {
	int32 ack_result = 1; // Caption: Acknowledgement Result;
	string uuid = 2; // Caption: UUID;
	string version = 3; // Caption: Version;
	int32 ack_reason = 4; // Caption: Acknowledgement Reason;
}

message Object {
}

message Scan {
	ocsf.v1_2_0.objects.enums.SCAN_TYPE_ID type_id = 1; // Caption: Type ID;
	string uid = 2; // Caption: Unique ID;
	string name = 3; // Caption: Name;
	string type = 4; // Caption: Type;
}

message PeripheralDevice {
	string name = 1; // Caption: Name;
	string serial_number = 2; // Caption: Serial Number;
	string uid = 3; // Caption: Unique ID;
	string vendor_name = 4; // Caption: Vendor Name;
	string class = 5; // Caption: Class;
	string model = 6; // Caption: Model;
}

message WinResource {
	string svc_name = 1; // Caption: Service Name;
	ocsf.v1_2_0.objects.enums.WIN_RESOURCE_TYPE_ID type_id = 2; // Caption: Type ID;
	string name = 3; // Caption: Name;
	string details = 4; // Caption: Details;
	string data = 5; // Caption: Data;
	repeated string labels = 6; // Caption: Labels;
	string uid = 7; // Caption: Unique ID;
	string type = 8; // Caption: Type;
	ocsf.v1_2_0.objects.DataClassification data_classification = 9; // Caption: Data Classification; Profile: data_classification;
}

message Process {
	int32 euid = 1; // Profile: linux/linux_users; Caption: Effective User ID;
	string uid = 2; // Caption: Unique ID;
	int32 egid = 3; // Caption: Effective Group ID; Profile: linux/linux_users;
	int32 tid = 4; // Caption: Thread ID;
	string cmd_line = 5; // Caption: Command Line;
	string integrity = 6; // Caption: Integrity;
	repeated string loaded_modules = 7; // Caption: Loaded Modules;
	ocsf.v1_2_0.objects.Container container = 8; // Caption: Container; Profile: container;
	int64 created_time = 9; // Caption: Created Time;
	ocsf.v1_2_0.objects.enums.PROCESS_INTEGRITY_ID integrity_id = 10; // Caption: Integrity Level;
	int64 terminated_time = 11; // Caption: Terminated Time;
	repeated string lineage = 12; // Caption: Lineage;
	ocsf.v1_2_0.objects.Process parent_process = 13; // Caption: Parent Process;
	ocsf.v1_2_0.objects.User user = 14; // Caption: User;
	int32 namespace_pid = 15; // Caption: Namespace PID; Profile: container;
	string name = 16; // Caption: Name;
	ocsf.v1_2_0.objects.Session session = 17; // Caption: Session;
	string sandbox = 18; // Caption: Sandbox;
	ocsf.v1_2_0.objects.File file = 19; // Caption: File;
	int32 auid = 20; // Caption: Audit User ID; Profile: linux/linux_users;
	ocsf.v1_2_0.objects.Group group = 21; // Caption: Group; Profile: linux/linux_users;
	ocsf.v1_2_0.objects.Object xattributes = 22; // Caption: Extended Attributes;
	int32 pid = 23; // Caption: Process ID;
}

message NetworkEndpoint {
	string svc_name = 1; // Caption: Service Name;
	string vpc_uid = 2; // Caption: VPC UID;
	string uid = 3; // Caption: Unique ID;
	string zone = 4; // Caption: Network Zone;
	ocsf.v1_2_0.objects.enums.NETWORK_ENDPOINT_TYPE_ID type_id = 5; // Caption: Type ID;
	string mac = 6; // Caption: MAC Address;
	string ip = 7; // Caption: IP Address;
	ocsf.v1_2_0.objects.Location location = 8; // Caption: Geo Location;
	repeated ocsf.v1_2_0.objects.Agent agent_list = 9; // Caption: Agent List;
	repeated string intermediate_ips = 10; // Caption: Intermediate IP Addresses;
	string instance_uid = 11; // Caption: Instance ID;
	ocsf.v1_2_0.objects.Container container = 12; // Caption: Container; Profile: container;
	string domain = 13; // Caption: Domain;
	ocsf.v1_2_0.objects.AutonomousSystem autonomous_system = 14; // Caption: Autonomous System;
	string name = 15; // Caption: Name;
	ocsf.v1_2_0.objects.DeviceHwInfo hw_info = 16; // Caption: Hardware Info;
	string interface_name = 17; // Caption: Network Interface Name;
	string type = 18; // Caption: Type;
	ocsf.v1_2_0.objects.User owner = 19; // Caption: Owner;
	string interface_uid = 20; // Caption: Network Interface ID;
	string subnet_uid = 21; // Caption: Subnet UID;
	int32 port = 22; // Caption: Port;
	ocsf.v1_2_0.objects.NetworkProxy proxy_endpoint = 23; // Caption: Proxy Endpoint;
	string vlan_uid = 24; // Caption: VLAN;
	string hostname = 25; // Caption: Hostname;
	ocsf.v1_2_0.objects.Os os = 26; // Caption: OS;
	int32 namespace_pid = 27; // Caption: Namespace PID; Profile: container;
}

message Cwe {
	string caption = 1; // Caption: Caption;
	string src_url = 2; // Caption: Source URL;
	string uid = 3; // Caption: Unique ID;
}

message LdapPerson {
	repeated string email_addrs = 1; // Caption: Email Addresses;
	string job_title = 2; // Caption: Job Title;
	ocsf.v1_2_0.objects.Location location = 3; // Caption: Geo Location;
	int64 leave_time = 4; // Caption: Leave Time;
	string ldap_dn = 5; // Caption: LDAP Distinguished Name;
	int64 deleted_time = 6; // Caption: Deleted Time;
	string employee_uid = 7; // Caption: Employee ID;
	string office_location = 8; // Caption: Office Location;
	string given_name = 9; // Caption: Given Name;
	int64 hire_time = 10; // Caption: Hire Time;
	int64 created_time = 11; // Caption: Created Time;
	repeated string labels = 12; // Caption: Labels;
	int64 modified_time = 13; // Caption: Modified Time;
	string cost_center = 14; // Caption: Cost Center;
	string surname = 15; // Caption: Surname;
	string ldap_cn = 16; // Caption: LDAP Common Name;
	ocsf.v1_2_0.objects.User manager = 17; // Caption: Manager;
	int64 last_login_time = 18; // Caption: Last Login;
}

message Analytic {
	string desc = 1; // Caption: Description;
	string name = 2; // Caption: Name;
	repeated ocsf.v1_2_0.objects.Analytic related_analytics = 3; // Caption: Related Analytics;
	string type = 4; // Caption: Type;
	ocsf.v1_2_0.objects.enums.ANALYTIC_TYPE_ID type_id = 5; // Caption: Type ID;
	string uid = 6; // Caption: Unique ID;
	string version = 7; // Caption: Version;
	string category = 8; // Caption: Category;
}

message Image {
	repeated string labels = 1; // Caption: Labels;
	string name = 2; // Caption: Name;
	string path = 3; // Caption: Path;
	string tag = 4; // Caption: Image Tag;
	string uid = 5; // Caption: Unique ID;
}

message Rule {
	string name = 1; // Caption: Name;
	string type = 2; // Caption: Type;
	string uid = 3; // Caption: Unique ID;
	string version = 4; // Caption: Version;
	string category = 5; // Caption: Category;
	string desc = 6; // Caption: Description;
}

message Email {
	repeated string smtp_to = 1; // Caption: SMTP To;
	string raw_header = 2; // Caption: Raw Header;
	string smtp_from = 3; // Caption: SMTP From;
	ocsf.v1_2_0.objects.DataClassification data_classification = 4; // Caption: Data Classification; Profile: data_classification;
	repeated string cc = 5; // Caption: Cc;
	int64 size = 6; // Caption: Size;
	repeated string to = 7; // Caption: To;
	repeated string x_originating_ip = 8; // Caption: X-Originating-IP;
	string delivered_to = 9; // Caption: Delivered To;
	string message_uid = 10; // Caption: Message UID;
	string reply_to = 11; // Caption: Reply To;
	string from = 12; // Caption: From;
	string subject = 13; // Caption: Subject Details;
	string uid = 14; // Caption: Unique ID;
}

message Fingerprint {
	string algorithm = 1; // Caption: Algorithm;
	ocsf.v1_2_0.objects.enums.FINGERPRINT_ALGORITHM_ID algorithm_id = 2; // Caption: Algorithm ID;
	string value = 3; // Caption: Value;
}

message Api {
	ocsf.v1_2_0.objects.Request request = 1; // Caption: API Request Details;
	ocsf.v1_2_0.objects.Response response = 2; // Caption: API Response Details;
	ocsf.v1_2_0.objects.Service service = 3; // Caption: Service;
	string version = 4; // Caption: Version;
	ocsf.v1_2_0.objects.Group group = 5; // Caption: Group;
	string operation = 6; // Caption: Operation;
}

message Metadata {
	ocsf.v1_2_0.objects.DataClassification data_classification = 1; // Caption: Data Classification; Profile: data_classification;
	repeated string labels = 2; // Caption: Labels;
	repeated ocsf.v1_2_0.objects.Logger loggers = 3; // Caption: Loggers;
	string tenant_uid = 4; // Caption: Tenant UID;
	repeated ocsf.v1_2_0.objects.Extension extensions = 5; // Caption: Schema Extensions;
	int64 logged_time = 6; // Caption: Logged Time;
	int64 processed_time = 7; // Caption: Processed Time;
	ocsf.v1_2_0.objects.Extension extension = 8; // Caption: Schema Extension;
	string log_version = 9; // Caption: Log Version;
	repeated string profiles = 10; // Caption: Profiles;
	string log_level = 11; // Caption: Log Level;
	string log_name = 12; // Caption: Log Name;
	int32 sequence = 13; // Caption: Sequence Number;
	string uid = 14; // Caption: Unique ID;
	string version = 15; // Caption: Version;
	string log_provider = 16; // Caption: Log Provider;
	string event_code = 17; // Caption: Event Code;
	string original_time = 18; // Caption: Original Time;
	ocsf.v1_2_0.objects.Product product = 19; // Caption: Product;
	string correlation_uid = 20; // Caption: Correlation UID;
	int64 modified_time = 21; // Caption: Modified Time;
}

message KernelDriver {
	ocsf.v1_2_0.objects.File file = 1; // Caption: File;
}

message User {
	string uid = 1; // Caption: Unique ID;
	ocsf.v1_2_0.objects.Account account = 2; // Caption: Account;
	string name = 3; // Caption: Name;
	string risk_level = 4; // Caption: Risk Level;
	repeated ocsf.v1_2_0.objects.Group groups = 5; // Caption: Groups;
	ocsf.v1_2_0.objects.Organization org = 6; // Caption: Organization;
	string domain = 7; // Caption: Domain;
	string credential_uid = 8; // Caption: User Credential ID;
	string email_addr = 9; // Caption: Email Address;
	int32 risk_score = 10; // Caption: Risk Score;
	string uid_alt = 11; // Caption: Alternate ID;
	string full_name = 12; // Caption: Full Name;
	ocsf.v1_2_0.objects.enums.USER_RISK_LEVEL_ID risk_level_id = 13; // Caption: Risk Level ID;
	ocsf.v1_2_0.objects.enums.USER_TYPE_ID type_id = 14; // Caption: Type ID;
	ocsf.v1_2_0.objects.LdapPerson ldap_person = 15; // Caption: LDAP Person;
	string type = 16; // Caption: Type;
}

message Location {
	bool is_on_premises = 1; // Caption: On Premises;
	string country = 2; // Caption: Country;
	string desc = 3; // Caption: Description;
	string geohash = 4; // Caption: Geohash;
	float lat = 5; // Caption: Latitude;
	string continent = 6; // Caption: Continent;
	string postal_code = 7; // Caption: Postal Code;
	string isp = 8; // Caption: ISP;
	string region = 9; // Caption: Region;
	float long = 10; // Caption: Longitude;
	string city = 11; // Caption: City;
	repeated float coordinates = 12; // Caption: Coordinates;
	string provider = 13; // Caption: Provider;
}

message Databucket {
	ocsf.v1_2_0.objects.enums.DATABUCKET_TYPE_ID type_id = 1; // Caption: Type ID;
	string desc = 2; // Caption: Description;
	int64 size = 3; // Caption: Size;
	ocsf.v1_2_0.objects.File file = 4; // Caption: File;
	repeated ocsf.v1_2_0.objects.Group groups = 5; // Caption: Groups;
	string type = 6; // Caption: Type;
	string uid = 7; // Caption: Unique ID;
	ocsf.v1_2_0.objects.DataClassification data_classification = 8; // Caption: Data Classification; Profile: data_classification;
	int64 created_time = 9; // Caption: Created Time;
	string name = 10; // Caption: Name;
	int64 modified_time = 11; // Caption: Modified Time;
}

message SecurityState {
	string state = 1; // Caption: State;
	ocsf.v1_2_0.objects.enums.SECURITY_STATE_STATE_ID state_id = 2; // Caption: State ID;
}

message NetworkProxy {
	ocsf.v1_2_0.objects.Location location = 1; // Caption: Geo Location;
	string vpc_uid = 2; // Caption: VPC UID;
	string uid = 3; // Caption: Unique ID;
	string mac = 4; // Caption: MAC Address;
	repeated ocsf.v1_2_0.objects.Agent agent_list = 5; // Caption: Agent List;
	ocsf.v1_2_0.objects.AutonomousSystem autonomous_system = 6; // Caption: Autonomous System;
	int32 port = 7; // Caption: Port;
	string vlan_uid = 8; // Caption: VLAN;
	ocsf.v1_2_0.objects.User owner = 9; // Caption: Owner;
	string hostname = 10; // Caption: Hostname;
	string zone = 11; // Caption: Network Zone;
	ocsf.v1_2_0.objects.NetworkProxy proxy_endpoint = 12; // Caption: Proxy Endpoint;
	ocsf.v1_2_0.objects.DeviceHwInfo hw_info = 13; // Caption: Hardware Info;
	string interface_uid = 14; // Caption: Network Interface ID;
	string interface_name = 15; // Caption: Network Interface Name;
	int32 namespace_pid = 16; // Caption: Namespace PID; Profile: container;
	string svc_name = 17; // Caption: Service Name;
	ocsf.v1_2_0.objects.enums.NETWORK_PROXY_TYPE_ID type_id = 18; // Caption: Type ID;
	string name = 19; // Caption: Name;
	string subnet_uid = 20; // Caption: Subnet UID;
	string ip = 21; // Caption: IP Address;
	string domain = 22; // Caption: Domain;
	string instance_uid = 23; // Caption: Instance ID;
	ocsf.v1_2_0.objects.Container container = 24; // Caption: Container; Profile: container;
	string type = 25; // Caption: Type;
	repeated string intermediate_ips = 26; // Caption: Intermediate IP Addresses;
	ocsf.v1_2_0.objects.Os os = 27; // Caption: OS;
}

message ResourceDetails {
	ocsf.v1_2_0.objects.DataClassification data_classification = 1; // Caption: Data Classification; Profile: data_classification;
	string data = 2; // Caption: Data;
	string name = 3; // Caption: Name;
	ocsf.v1_2_0.objects.Group group = 4; // Caption: Group;
	string uid = 5; // Caption: Unique ID;
	string cloud_partition = 6; // Caption: Cloud Partition; Profile: cloud;
	string region = 7; // Caption: Region; Profile: cloud;
	string version = 8; // Caption: Version;
	repeated ocsf.v1_2_0.objects.Agent agent_list = 9; // Caption: Agent List;
	string namespace = 10; // Caption: Namespace;
	ocsf.v1_2_0.objects.User owner = 11; // Caption: Owner;
	string type = 12; // Caption: Type;
	string criticality = 13; // Caption: Criticality;
	repeated string labels = 14; // Caption: Labels;
}

message Metric {
	string value = 1; // Caption: Value;
	string name = 2; // Caption: Name;
}

message Compliance {
	string status = 1; // Caption: Status;
	string status_code = 2; // Caption: Status Code;
	string status_detail = 3; // Caption: Status Details;
	ocsf.v1_2_0.objects.enums.COMPLIANCE_STATUS_ID status_id = 4; // Caption: Status ID;
	string control = 5; // Caption: Security Control;
	repeated string requirements = 6; // Caption: Compliance Requirements;
	repeated string standards = 7; // Caption: Security Standards;
}

message Idp {
	string name = 1; // Caption: Name;
	string uid = 2; // Caption: Unique ID;
}

message KeyboardInfo {
	int32 function_keys = 1; // Caption: Function Keys;
	string ime = 2; // Caption: IME;
	string keyboard_layout = 3; // Caption: Keyboard Layout;
	int32 keyboard_subtype = 4; // Caption: Keyboard Subtype;
	string keyboard_type = 5; // Caption: Keyboard Type;
}

message Extension {
	string name = 1; // Caption: Name;
	string uid = 2; // Caption: Unique ID;
	string version = 3; // Caption: Version;
}

message EmailAuth {
	string dkim = 1; // Caption: DKIM Status;
	string dkim_signature = 2; // Caption: DKIM Signature;
	string dmarc = 3; // Caption: DMARC Status;
	string dmarc_override = 4; // Caption: DMARC Override;
	string dmarc_policy = 5; // Caption: DMARC Policy;
	string spf = 6; // Caption: SPF Status;
	string dkim_domain = 7; // Caption: DKIM Domain;
}

message Product {
	string vendor_name = 1; // Caption: Vendor Name;
	string cpe_name = 2; // Caption: The product CPE identifier;
	string lang = 3; // Caption: Language;
	string name = 4; // Caption: Name;
	string uid = 5; // Caption: Unique ID;
	ocsf.v1_2_0.objects.DataClassification data_classification = 6; // Caption: Data Classification; Profile: data_classification;
	string url_string = 7; // Caption: URL String;
	string version = 8; // Caption: Version;
	ocsf.v1_2_0.objects.Feature feature = 9; // Caption: Feature;
	string path = 10; // Caption: Path;
}

message Job {
	ocsf.v1_2_0.objects.File file = 1; // Caption: File;
	string run_state = 2; // Caption: Run State;
	int64 next_run_time = 3; // Caption: Next Run;
	ocsf.v1_2_0.objects.enums.JOB_RUN_STATE_ID run_state_id = 4; // Caption: Run State ID;
	ocsf.v1_2_0.objects.User user = 5; // Caption: User;
	string name = 6; // Caption: Name;
	int64 created_time = 7; // Caption: Created Time;
	string desc = 8; // Caption: Description;
	int64 last_run_time = 9; // Caption: Last Run;
	string cmd_line = 10; // Caption: Command Line;
}

message Evidences {
	ocsf.v1_2_0.objects.Databucket databucket = 1; // Caption: Databucket;
	ocsf.v1_2_0.objects.File file = 2; // Caption: File;
	ocsf.v1_2_0.objects.NetworkEndpoint src_endpoint = 3; // Caption: Source Endpoint;
	ocsf.v1_2_0.objects.Actor actor = 4; // Caption: Actor;
	ocsf.v1_2_0.objects.Container container = 5; // Caption: Container;
	ocsf.v1_2_0.objects.Process process = 6; // Caption: Process;
	ocsf.v1_2_0.objects.NetworkConnectionInfo connection_info = 7; // Caption: Connection Info;
	string data = 8; // Caption: Data;
	ocsf.v1_2_0.objects.Database database = 9; // Caption: Database;
	ocsf.v1_2_0.objects.NetworkEndpoint dst_endpoint = 10; // Caption: Destination Endpoint;
	ocsf.v1_2_0.objects.Api api = 11; // Caption: API Details;
	ocsf.v1_2_0.objects.DnsQuery query = 12; // Caption: DNS Query;
}

message Certificate {
	string issuer = 1; // Caption: Issuer Details;
	string serial_number = 2; // Caption: Serial Number;
	string subject = 3; // Caption: Subject Details;
	string uid = 4; // Caption: Unique ID;
	string version = 5; // Caption: Version;
	int64 created_time = 6; // Caption: Created Time;
	int64 expiration_time = 7; // Caption: Expiration Time;
	repeated ocsf.v1_2_0.objects.Fingerprint fingerprints = 8; // Caption: Fingerprints;
}

message RelatedEvent {
	string product_uid = 1; // Caption: Product Identifier;
	string type = 2; // Caption: Type;
	string type_name = 3; // Caption: Type Name;
	int64 type_uid = 4; // Caption: Type ID;
	string uid = 5; // Caption: Unique ID;
	repeated ocsf.v1_2_0.objects.Attack attacks = 6; // Caption: MITRE ATT&CK® Details;
	repeated ocsf.v1_2_0.objects.KillChainPhase kill_chain = 7; // Caption: Kill Chain;
	repeated ocsf.v1_2_0.objects.Observable observables = 8; // Caption: Observables;
}

message DnsAnswer {
	string type = 1; // Caption: Type;
	string class = 2; // Caption: Class;
	repeated ocsf.v1_2_0.objects.enums.DNS_ANSWER_FLAG_IDS flag_ids = 3; // Caption: Communication Flag IDs;
	repeated string flags = 4; // Caption: Flags;
	string rdata = 5; // Caption: DNS RData;
	int32 ttl = 6; // Caption: TTL;
	int32 packet_uid = 7; // Caption: Packet UID;
}

message HttpHeader {
	string name = 1; // Caption: Name;
	string value = 2; // Caption: Value;
}

message FirewallRule {
	string match_location = 1; // Caption: Match Location;
	int32 rate_limit = 2; // Caption: Rate Limit;
	string name = 3; // Caption: Name;
	string type = 4; // Caption: Type;
	string version = 5; // Caption: Version;
	string category = 6; // Caption: Category;
	int32 duration = 7; // Caption: Duration;
	string sensitivity = 8; // Caption: Sensitivity;
	string desc = 9; // Caption: Description;
	string uid = 10; // Caption: Unique ID;
	string condition = 11; // Caption: Condition;
	repeated string match_details = 12; // Caption: Match Details;
}

message AuthFactor {
	repeated string security_questions = 1; // Caption: Security Questions;
	string phone_number = 2; // Caption: Phone Number;
	string email_addr = 3; // Caption: Email Address;
	bool is_hotp = 4; // Caption: HMAC-based One-time Password (HOTP);
	ocsf.v1_2_0.objects.Device device = 5; // Caption: Device;
	string provider = 6; // Caption: Provider;
	ocsf.v1_2_0.objects.enums.AUTH_FACTOR_FACTOR_TYPE_ID factor_type_id = 7; // Caption: Factor Type ID;
	bool is_totp = 8; // Caption: Time-based One-time Password (TOTP);
	string factor_type = 9; // Caption: Factor Type;
}

message Feature {
	string name = 1; // Caption: Name;
	string uid = 2; // Caption: Unique ID;
	string version = 3; // Caption: Version;
}

message Display {
	int32 color_depth = 1; // Caption: Color Depth;
	int32 physical_height = 2; // Caption: Physical Height;
	int32 physical_orientation = 3; // Caption: Physical Orientation;
	int32 physical_width = 4; // Caption: Physical Width;
	int32 scale_factor = 5; // Caption: Scale Factor;
}

message Kernel {
	ocsf.v1_2_0.objects.enums.KERNEL_TYPE_ID type_id = 1; // Caption: Type ID;
	bool is_system = 2; // Caption: System;
	string name = 3; // Caption: Name;
	string path = 4; // Caption: Path;
	string system_call = 5; // Caption: System Call;
	string type = 6; // Caption: Type;
}

message Device {
	repeated ocsf.v1_2_0.objects.Agent agent_list = 1; // Caption: Agent List;
	ocsf.v1_2_0.objects.User owner = 2; // Caption: Owner;
	string uid = 3; // Caption: Unique ID;
	string ip = 4; // Caption: IP Address;
	int64 created_time = 5; // Caption: Created Time;
	ocsf.v1_2_0.objects.Os os = 6; // Caption: OS;
	string instance_uid = 7; // Caption: Instance ID;
	string interface_name = 8; // Caption: Network Interface Name;
	ocsf.v1_2_0.objects.Container container = 9; // Caption: Container; Profile: container;
	string subnet_uid = 10; // Caption: Subnet UID;
	string desc = 11; // Caption: Description;
	string hostname = 12; // Caption: Hostname;
	bool is_personal = 13; // Caption: Personal Device;
	string zone = 14; // Caption: Network Zone;
	string vlan_uid = 15; // Caption: VLAN;
	int32 risk_score = 16; // Caption: Risk Score;
	ocsf.v1_2_0.objects.DeviceHwInfo hw_info = 17; // Caption: Hardware Info;
	string mac = 18; // Caption: MAC Address;
	string region = 19; // Caption: Region;
	repeated ocsf.v1_2_0.objects.Group groups = 20; // Caption: Groups;
	string name = 21; // Caption: Name;
	string type = 22; // Caption: Type;
	bool is_managed = 23; // Caption: Managed Device;
	ocsf.v1_2_0.objects.enums.DEVICE_TYPE_ID type_id = 24; // Caption: Type ID;
	string autoscale_uid = 25; // Caption: Autoscale UID;
	ocsf.v1_2_0.objects.Location location = 26; // Caption: Geo Location;
	ocsf.v1_2_0.objects.Image image = 27; // Caption: Image;
	int64 modified_time = 28; // Caption: Modified Time;
	repeated ocsf.v1_2_0.objects.NetworkInterface network_interfaces = 29; // Caption: Network Interfaces;
	string domain = 30; // Caption: Domain;
	bool is_compliant = 31; // Caption: Compliant Device;
	string vpc_uid = 32; // Caption: VPC UID;
	string risk_level = 33; // Caption: Risk Level;
	string uid_alt = 34; // Caption: Alternate ID;
	string hypervisor = 35; // Caption: Hypervisor;
	int64 last_seen_time = 36; // Caption: Last Seen;
	bool is_trusted = 37; // Caption: Trusted Device;
	int32 namespace_pid = 38; // Caption: Namespace PID; Profile: container;
	string interface_uid = 39; // Caption: Network Interface ID;
	int64 first_seen_time = 40; // Caption: First Seen;
	ocsf.v1_2_0.objects.enums.DEVICE_RISK_LEVEL_ID risk_level_id = 41; // Caption: Risk Level ID;
	string subnet = 42; // Caption: Subnet;
	string imei = 43; // Caption: IMEI;
	ocsf.v1_2_0.objects.Organization org = 44; // Caption: Organization;
}

message Cvss {
	string vector_string = 1; // Caption: Vector String;
	string version = 2; // Caption: Version;
	float base_score = 3; // Caption: Base Score;
	string depth = 4; // Caption: CVSS Depth; AllowedValues: Base, Environmental, Temporal;
	repeated ocsf.v1_2_0.objects.Metric metrics = 5; // Caption: Metrics;
	float overall_score = 6; // Caption: Overall Score;
	string severity = 7; // Caption: Severity;
}

message Vulnerability {
	repeated string references = 1; // Caption: References;
	repeated ocsf.v1_2_0.objects.KbArticle kb_article_list = 2; // Caption: Knowledgebase Articles;
	int64 last_seen_time = 3; // Caption: Last Seen;
	string title = 4; // Caption: Title;
	ocsf.v1_2_0.objects.Cve cve = 5; // Caption: CVE;
	repeated string kb_articles = 6; // Caption: Knowledgebase Articles;
	ocsf.v1_2_0.objects.Remediation remediation = 7; // Caption: Remediation Guidance;
	string vendor_name = 8; // Caption: Vendor Name;
	repeated ocsf.v1_2_0.objects.AffectedPackage affected_packages = 9; // Caption: Affected Software Packages;
	bool fix_available = 10; // Caption: Fix Availability;
	string severity = 11; // Caption: Severity;
	bool is_fix_available = 12; // Caption: Fix Availability;
	int64 first_seen_time = 13; // Caption: First Seen;
	bool is_exploit_available = 14; // Caption: Exploit Availability;
	repeated string related_vulnerabilities = 15; // Caption: Related Vulnerabilities;
	ocsf.v1_2_0.objects.Cwe cwe = 16; // Caption: CWE;
	repeated ocsf.v1_2_0.objects.Package packages = 17; // Caption: Software Packages;
	string desc = 18; // Caption: Description;
	repeated ocsf.v1_2_0.objects.AffectedCode affected_code = 19; // Caption: Affected Code;
}

message DceRpc {
	string command = 1; // Caption: Command;
	string command_response = 2; // Caption: Command Response;
	repeated string flags = 3; // Caption: Flags;
	ocsf.v1_2_0.objects.RpcInterface rpc_interface = 4; // Caption: Remote Procedure Call Interface;
	int32 opnum = 5; // Caption: Opnum;
}

message Actor {
	string app_name = 1; // Caption: Application Name;
	string app_uid = 2; // Caption: Application ID;
	repeated ocsf.v1_2_0.objects.Authorization authorizations = 3; // Caption: Authorization Information;
	ocsf.v1_2_0.objects.Idp idp = 4; // Caption: Identity Provider;
	string invoked_by = 5; // Caption: Invoked by;
	ocsf.v1_2_0.objects.Process process = 6; // Caption: Process;
	ocsf.v1_2_0.objects.Session session = 7; // Caption: Session;
	ocsf.v1_2_0.objects.User user = 8; // Caption: User;
}

message Logger {
	string name = 1; // Caption: Name;
	int64 transmit_time = 2; // Caption: Transmission Time;
	string uid = 3; // Caption: Unique ID;
	int64 logged_time = 4; // Caption: Logged Time;
	string log_version = 5; // Caption: Log Version;
	string log_provider = 6; // Caption: Log Provider;
	ocsf.v1_2_0.objects.Product product = 7; // Caption: Product;
	ocsf.v1_2_0.objects.Device device = 8; // Caption: Device;
	string version = 9; // Caption: Version;
	string log_level = 10; // Caption: Log Level;
	string log_name = 11; // Caption: Log Name;
}

message Cve {
	int64 modified_time = 1; // Caption: Modified Time;
	string desc = 2; // Caption: Description;
	string cwe_url = 3; // Caption: CWE URL;
	repeated string references = 4; // Caption: References;
	string title = 5; // Caption: Title;
	int64 created_time = 6; // Caption: Created Time;
	string cwe_uid = 7; // Caption: CWE UID;
	ocsf.v1_2_0.objects.Epss epss = 8; // Caption: EPSS;
	repeated ocsf.v1_2_0.objects.Cvss cvss = 9; // Caption: CVSS Score;
	ocsf.v1_2_0.objects.Cwe cwe = 10; // Caption: CWE;
	ocsf.v1_2_0.objects.Product product = 11; // Caption: Product;
	string type = 12; // Caption: Type;
	string uid = 13; // Caption: Unique ID;
}

message SubTechnique {
	string name = 1; // Caption: Name;
	string src_url = 2; // Caption: Source URL;
	string uid = 3; // Caption: Unique ID;
}

message LoadBalancer {
	string classification = 1; // Caption: Classification;
	ocsf.v1_2_0.objects.NetworkEndpoint dst_endpoint = 2; // Caption: Destination Endpoint;
	string name = 3; // Caption: Name;
	string uid = 4; // Caption: Unique ID;
	repeated ocsf.v1_2_0.objects.Metric metrics = 5; // Caption: Metrics;
	string message = 6; // Caption: Message;
	int32 code = 7; // Caption: Response Code;
	repeated ocsf.v1_2_0.objects.EndpointConnection endpoint_connections = 8; // Caption: Endpoint Connections;
	string status_detail = 9; // Caption: Status Details;
	string error_message = 10; // Caption: Error Message;
}

message EndpointConnection {
	int32 code = 1; // Caption: Response Code;
	ocsf.v1_2_0.objects.NetworkEndpoint network_endpoint = 2; // Caption: Network Endpoint;
}

message File {
	int64 size = 1; // Caption: Size;
	ocsf.v1_2_0.objects.enums.FILE_TYPE_ID type_id = 2; // Caption: Type ID;
	ocsf.v1_2_0.objects.User creator = 3; // Caption: Creator;
	string uid = 4; // Caption: Unique ID;
	string parent_folder = 5; // Caption: Parent Folder;
	string type = 6; // Caption: Type;
	string company_name = 7; // Caption: Company Name;
	ocsf.v1_2_0.objects.enums.FILE_CONFIDENTIALITY_ID confidentiality_id = 8; // Caption: Confidentiality ID;
	ocsf.v1_2_0.objects.DigitalSignature signature = 9; // Caption: Digital Signature;
	int64 modified_time = 10; // Caption: Modified Time;
	int32 attributes = 11; // Caption: Attributes;
	int64 created_time = 12; // Caption: Created Time;
	string name = 13; // Caption: Name;
	ocsf.v1_2_0.objects.User accessor = 14; // Caption: Accessor;
	ocsf.v1_2_0.objects.User modifier = 15; // Caption: Modifier;
	ocsf.v1_2_0.objects.Product product = 16; // Caption: Product;
	string version = 17; // Caption: Version;
	string path = 18; // Caption: Path;
	string mime_type = 19; // Caption: MIME type;
	string security_descriptor = 20; // Caption: Security Descriptor;
	int64 accessed_time = 21; // Caption: Accessed Time;
	repeated ocsf.v1_2_0.objects.Fingerprint hashes = 22; // Caption: Hashes;
	ocsf.v1_2_0.objects.DataClassification data_classification = 23; // Profile: data_classification; Caption: Data Classification;
	ocsf.v1_2_0.objects.Object xattributes = 24; // Caption: Extended Attributes;
	string desc = 25; // Caption: Description;
	string confidentiality = 26; // Caption: Confidentiality;
	ocsf.v1_2_0.objects.User owner = 27; // Caption: Owner;
	bool is_system = 28; // Caption: System;
}

message Malware {
	string name = 1; // Caption: Name;
	string path = 2; // Caption: Path;
	string provider = 3; // Caption: Provider;
	string uid = 4; // Caption: Unique ID;
	repeated ocsf.v1_2_0.objects.enums.MALWARE_CLASSIFICATION_IDS classification_ids = 5; // Caption: Classification IDs;
	repeated string classifications = 6; // Caption: Classifications;
	repeated ocsf.v1_2_0.objects.Cve cves = 7; // Caption: CVE List;
}

message Database {
	ocsf.v1_2_0.objects.DataClassification data_classification = 1; // Caption: Data Classification; Profile: data_classification;
	string desc = 2; // Caption: Description;
	int64 modified_time = 3; // Caption: Modified Time;
	string uid = 4; // Caption: Unique ID;
	string type = 5; // Caption: Type;
	ocsf.v1_2_0.objects.enums.DATABASE_TYPE_ID type_id = 6; // Caption: Type ID;
	int64 created_time = 7; // Caption: Created Time;
	int64 size = 8; // Caption: Size;
	repeated ocsf.v1_2_0.objects.Group groups = 9; // Caption: Groups;
	string name = 10; // Caption: Name;
}

message Group {
	string uid = 1; // Caption: Unique ID;
	string desc = 2; // Caption: Description;
	string domain = 3; // Caption: Domain;
	string name = 4; // Caption: Name;
	repeated string privileges = 5; // Caption: Privileges;
	string type = 6; // Caption: Type;
}

message Url {
	string path = 1; // Caption: Path;
	int32 port = 2; // Caption: Port;
	repeated string categories = 3; // Caption: Website Categorization;
	string hostname = 4; // Caption: Hostname;
	string url_string = 5; // Caption: URL String;
	repeated ocsf.v1_2_0.objects.enums.URL_CATEGORY_IDS category_ids = 6; // Caption: Website Categorization IDs;
	string query_string = 7; // Caption: HTTP Query String;
	string scheme = 8; // Caption: Scheme;
	string resource_type = 9; // Caption: Resource Type;
	string subdomain = 10; // Caption: Subdomain;
}

message DataSecurity {
	string detection_pattern = 1; // Caption: Detection Pattern;
	string detection_system = 2; // Caption: Detection System;
	ocsf.v1_2_0.objects.enums.DATA_SECURITY_DETECTION_SYSTEM_ID detection_system_id = 3; // Caption: Detection System ID;
	string data_lifecycle_state = 4; // Caption: Data Lifecycle State;
	ocsf.v1_2_0.objects.enums.DATA_SECURITY_CONFIDENTIALITY_ID confidentiality_id = 5; // Caption: Confidentiality ID;
	ocsf.v1_2_0.objects.enums.DATA_SECURITY_DATA_LIFECYCLE_STATE_ID data_lifecycle_state_id = 6; // Caption: Data Lifecycle State ID;
	string pattern_match = 7; // Caption: Pattern Match;
	ocsf.v1_2_0.objects.Policy policy = 8; // Caption: Policy;
	string category = 9; // Caption: Category;
	ocsf.v1_2_0.objects.enums.DATA_SECURITY_CATEGORY_ID category_id = 10; // Caption: Category ID;
	string confidentiality = 11; // Caption: Confidentiality;
}

message Container {
	string name = 1; // Caption: Name;
	string uid = 2; // Caption: Unique ID;
	string orchestrator = 3; // Caption: Orchestrator;
	string tag = 4; // Caption: Image Tag;
	ocsf.v1_2_0.objects.Image image = 5; // Caption: Image;
	int64 size = 6; // Caption: Size;
	string pod_uuid = 7; // Caption: Pod UUID;
	ocsf.v1_2_0.objects.Fingerprint hash = 8; // Caption: Hash;
	string runtime = 9; // Caption: Runtime;
	string network_driver = 10; // Caption: Network Driver;
}

message Service {
	string version = 1; // Caption: Version;
	repeated string labels = 2; // Caption: Labels;
	string name = 3; // Caption: Name;
	string uid = 4; // Caption: Unique ID;
}

message Technique {
	string name = 1; // Caption: Name;
	string src_url = 2; // Caption: Source URL;
	string uid = 3; // Caption: Unique ID;
}

message QueryInfo {
	string data = 1; // Caption: Data;
	int64 bytes = 2; // Caption: Total Bytes;
	string name = 3; // Caption: Name;
	string uid = 4; // Caption: Unique ID;
	int64 query_time = 5; // Caption: Query Time;
	string query_string = 6; // Caption: HTTP Query String;
}

message San {
	string name = 1; // Caption: Name;
	string type = 2; // Caption: Type;
}

message NetworkInterface {
	string hostname = 1; // Caption: Hostname;
	string mac = 2; // Caption: MAC Address;
	int32 subnet_prefix = 3; // Caption: Subnet Prefix Length;
	string uid = 4; // Caption: Unique ID;
	string namespace = 5; // Caption: Namespace;
	string type = 6; // Caption: Type;
	ocsf.v1_2_0.objects.enums.NETWORK_INTERFACE_TYPE_ID type_id = 7; // Caption: Type ID;
	string ip = 8; // Caption: IP Address;
	string name = 9; // Caption: Name;
}

message DigitalSignature {
	string algorithm = 1; // Caption: Algorithm;
	ocsf.v1_2_0.objects.enums.DIGITAL_SIGNATURE_ALGORITHM_ID algorithm_id = 2; // Caption: Algorithm ID;
	ocsf.v1_2_0.objects.Certificate certificate = 3; // Caption: Certificate;
	int64 created_time = 4; // Caption: Created Time;
	string developer_uid = 5; // Caption: Developer UID;
	ocsf.v1_2_0.objects.Fingerprint digest = 6; // Caption: Message Digest;
}

message CisBenchmarkResult {
	ocsf.v1_2_0.objects.Rule rule = 1; // Caption: Rule;
	string desc = 2; // Caption: Description;
	string name = 3; // Caption: Name;
	ocsf.v1_2_0.objects.Remediation remediation = 4; // Caption: Remediation Guidance;
}

message Module {
	string load_type = 1; // Caption: Load Type;
	ocsf.v1_2_0.objects.enums.MODULE_LOAD_TYPE_ID load_type_id = 2; // Caption: Load Type ID;
	string start_address = 3; // Caption: Start Address;
	string type = 4; // Caption: Type;
	string base_address = 5; // Caption: Base Address;
	ocsf.v1_2_0.objects.File file = 6; // Caption: File;
	string function_name = 7; // Caption: Function Name;
}

message Authorization {
	string decision = 1; // Caption: Authorization Decision/Outcome;
	ocsf.v1_2_0.objects.Policy policy = 2; // Caption: Policy;
}

message Os {
	string cpe_name = 1; // Caption: The product CPE identifier;
	string edition = 2; // Caption: OS Edition;
	int32 sp_ver = 3; // Caption: OS Service Pack Version;
	string type = 4; // Caption: Type;
	string build = 5; // Caption: OS Build;
	string country = 6; // Caption: Country;
	string sp_name = 7; // Caption: OS Service Pack;
	string version = 8; // Caption: Version;
	string lang = 9; // Caption: Language;
	ocsf.v1_2_0.objects.enums.OS_TYPE_ID type_id = 10; // Caption: Type ID;
	int32 cpu_bits = 11; // Caption: CPU Bits;
	string name = 12; // Caption: Name;
}

message Attack {
	ocsf.v1_2_0.objects.SubTechnique sub_technique = 1; // Caption: Sub Technique;
	string version = 2; // Caption: Version;
	ocsf.v1_2_0.objects.Tactic tactic = 3; // Caption: Tactic;
	repeated ocsf.v1_2_0.objects.Tactic tactics = 4; // Caption: Tactics;
	ocsf.v1_2_0.objects.Technique technique = 5; // Caption: Technique;
}

message FindingInfo {
	string desc = 1; // Caption: Description;
	string uid = 2; // Caption: Unique ID;
	string src_url = 3; // Caption: Source URL;
	repeated ocsf.v1_2_0.objects.Attack attacks = 4; // Caption: MITRE ATT&CK® Details;
	int64 created_time = 5; // Caption: Created Time;
	ocsf.v1_2_0.objects.Analytic analytic = 6; // Caption: Analytic;
	repeated ocsf.v1_2_0.objects.RelatedEvent related_events = 7; // Caption: Related Events;
	int64 first_seen_time = 8; // Caption: First Seen;
	int64 last_seen_time = 9; // Caption: Last Seen;
	string product_uid = 10; // Caption: Product Identifier;
	repeated ocsf.v1_2_0.objects.Analytic related_analytics = 11; // Caption: Related Analytics;
	repeated string types = 12; // Caption: Types;
	repeated ocsf.v1_2_0.objects.KillChainPhase kill_chain = 13; // Caption: Kill Chain;
	int64 modified_time = 14; // Caption: Modified Time;
	string title = 15; // Caption: Title;
	repeated string data_sources = 16; // Caption: Data Sources;
}

message Package {
	string license = 1; // Caption: Software License;
	string name = 2; // Caption: Name;
	string purl = 3; // Caption: Package URL;
	string release = 4; // Caption: Software Release Details;
	string version = 5; // Caption: Version;
	string architecture = 6; // Caption: Architecture;
	int32 epoch = 7; // Caption: Epoch;
}

message Organization {
	string name = 1; // Caption: Name;
	string ou_name = 2; // Caption: Org Unit Name;
	string ou_uid = 3; // Caption: Org Unit ID;
	string uid = 4; // Caption: Unique ID;
}

message DeviceHwInfo {
	int32 cpu_cores = 1; // Caption: CPU Cores;
	ocsf.v1_2_0.objects.KeyboardInfo keyboard_info = 2; // Caption: Keyboard Information;
	string bios_ver = 3; // Caption: BIOS Version;
	string cpu_type = 4; // Caption: Processor Type;
	string serial_number = 5; // Caption: Serial Number;
	string bios_date = 6; // Caption: BIOS Date;
	string chassis = 7; // Caption: Chassis;
	int32 cpu_count = 8; // Caption: CPU Count;
	int32 ram_size = 9; // Caption: RAM Size;
	string bios_manufacturer = 10; // Caption: BIOS Manufacturer;
	ocsf.v1_2_0.objects.Display desktop_display = 11; // Caption: Desktop Display;
	int32 cpu_bits = 12; // Caption: CPU Bits;
	int32 cpu_speed = 13; // Caption: Processor Speed;
}

message Reputation {
	ocsf.v1_2_0.objects.enums.REPUTATION_SCORE_ID score_id = 1; // Caption: Reputation Score ID;
	float base_score = 2; // Caption: Base Score;
	string provider = 3; // Caption: Provider;
	string score = 4; // Caption: Reputation Score;
}

message AutonomousSystem {
	int32 number = 1; // Caption: Number;
	string name = 2; // Caption: Name;
}

message KillChainPhase {
	string phase = 1; // Caption: Kill Chain Phase;
	ocsf.v1_2_0.objects.enums.KILL_CHAIN_PHASE_PHASE_ID phase_id = 2; // Caption: Kill Chain Phase ID;
}

message AffectedCode {
	int32 end_line = 1; // Caption: End Line;
	ocsf.v1_2_0.objects.File file = 2; // Caption: File;
	ocsf.v1_2_0.objects.User owner = 3; // Caption: Owner;
	ocsf.v1_2_0.objects.Remediation remediation = 4; // Caption: Remediation Guidance;
	int32 start_line = 5; // Caption: Start Line;
}

message HttpCookie {
	string value = 1; // Caption: Value;
	string domain = 2; // Caption: Domain;
	int64 expiration_time = 3; // Caption: Expiration Time;
	string path = 4; // Caption: Path;
	bool http_only = 5; // Caption: HTTP Only;
	string samesite = 6; // Caption: SameSite;
	bool secure = 7; // Caption: Secure;
	string name = 8; // Caption: Name;
	bool is_http_only = 9; // Caption: HTTP Only;
	bool is_secure = 10; // Caption: Secure;
}

message Enrichment {
	string data = 1; // Caption: Data;
	string name = 2; // Caption: Name;
	string provider = 3; // Caption: Provider;
	string type = 4; // Caption: Type;
	string value = 5; // Caption: Value;
}

message Table {
	int64 size = 1; // Caption: Size;
	repeated ocsf.v1_2_0.objects.Group groups = 2; // Caption: Groups;
	string name = 3; // Caption: Name;
	string uid = 4; // Caption: Unique ID;
	int64 created_time = 5; // Caption: Created Time;
	int64 modified_time = 6; // Caption: Modified Time;
	string desc = 7; // Caption: Description;
}

message NetworkTraffic {
	int64 packets_in = 1; // Caption: Packets In;
	int64 chunks = 2; // Caption: Chunks;
	int64 bytes = 3; // Caption: Total Bytes;
	int64 bytes_in = 4; // Caption: Bytes In;
	int64 bytes_out = 5; // Caption: Bytes Out;
	int64 packets = 6; // Caption: Total Packets;
	int64 packets_out = 7; // Caption: Packets Out;
	int64 chunks_in = 8; // Caption: Chunks In;
	int64 chunks_out = 9; // Caption: Chunks Out;
}

message NetworkConnectionInfo {
	ocsf.v1_2_0.objects.Session session = 1; // Caption: Session;
	int32 tcp_flags = 2; // Caption: TCP Flags;
	string protocol_name = 3; // Caption: Protocol Name;
	int32 protocol_num = 4; // Caption: Protocol Number;
	ocsf.v1_2_0.objects.enums.NETWORK_CONNECTION_INFO_PROTOCOL_VER_ID protocol_ver_id = 5; // Caption: Protocol Version ID;
	string uid = 6; // Caption: Unique ID;
	string boundary = 7; // Caption: Boundary;
	string protocol_ver = 8; // Caption: Protocol Version;
	string direction = 9; // Caption: Direction;
	ocsf.v1_2_0.objects.enums.NETWORK_CONNECTION_INFO_DIRECTION_ID direction_id = 10; // Caption: Direction ID;
	ocsf.v1_2_0.objects.enums.NETWORK_CONNECTION_INFO_BOUNDARY_ID boundary_id = 11; // Caption: Boundary ID;
}

message DataClassification {
	string category = 1; // Caption: Category;
	ocsf.v1_2_0.objects.enums.DATA_CLASSIFICATION_CATEGORY_ID category_id = 2; // Caption: Category ID;
	string confidentiality = 3; // Caption: Confidentiality;
	ocsf.v1_2_0.objects.enums.DATA_CLASSIFICATION_CONFIDENTIALITY_ID confidentiality_id = 4; // Caption: Confidentiality ID;
	ocsf.v1_2_0.objects.Policy policy = 5; // Caption: Policy;
}

message Remediation {
	string desc = 1; // Caption: Description;
	repeated string references = 2; // Caption: References;
	repeated string kb_articles = 3; // Caption: Knowledgebase Articles;
	repeated ocsf.v1_2_0.objects.KbArticle kb_article_list = 4; // Caption: Knowledgebase Articles;
}

message HttpResponse {
	string content_type = 1; // Caption: HTTP Content Type;
	repeated ocsf.v1_2_0.objects.HttpHeader http_headers = 2; // Caption: HTTP Headers;
	int32 latency = 3; // Caption: Latency;
	int32 length = 4; // Caption: Response Length;
	string message = 5; // Caption: Message;
	string status = 6; // Caption: Status;
	int32 code = 7; // Caption: Response Code;
}

message Session {
	string credential_uid = 1; // Caption: User Credential ID;
	int64 expiration_time = 2; // Caption: Expiration Time;
	string expiration_reason = 3; // Caption: Expiration Reason;
	string uuid = 4; // Caption: UUID;
	int32 count = 5; // Caption: Count;
	string uid = 6; // Caption: Unique ID;
	string uid_alt = 7; // Caption: Alternate ID;
	bool is_vpn = 8; // Caption: VPN Session;
	int64 created_time = 9; // Caption: Created Time;
	bool is_remote = 10; // Caption: Remote;
	string issuer = 11; // Caption: Issuer Details;
	string terminal = 12; // Caption: Terminal;
	bool is_mfa = 13; // Caption: Multi Factor Authentication;
}

message Cloud {
	string zone = 1; // Caption: Network Zone;
	ocsf.v1_2_0.objects.Account account = 2; // Caption: Account;
	ocsf.v1_2_0.objects.Organization org = 3; // Caption: Organization;
	string project_uid = 4; // Caption: Project ID;
	string provider = 5; // Caption: Provider;
	string region = 6; // Caption: Region;
}

message HttpRequest {
	string user_agent = 1; // Caption: HTTP User-Agent;
	string version = 2; // Caption: Version;
	string args = 3; // Caption: HTTP Arguments;
	string http_method = 4; // Caption: HTTP Method; AllowedValues: GET, HEAD, OPTIONS, POST, PUT, TRACE, CONNECT, DELETE;
	string referrer = 5; // Caption: HTTP Referrer;
	string uid = 6; // Caption: Unique ID;
	ocsf.v1_2_0.objects.Url url = 7; // Caption: URL;
	repeated string x_forwarded_for = 8; // Caption: X-Forwarded-For;
	repeated ocsf.v1_2_0.objects.HttpHeader http_headers = 9; // Caption: HTTP Headers;
	int32 length = 10; // Caption: Response Length;
}

message TlsExtension {
	string data = 1; // Caption: Data;
	string type = 2; // Caption: Type;
	ocsf.v1_2_0.objects.enums.TLS_EXTENSION_TYPE_ID type_id = 3; // Caption: Type ID;
}