/*
* CrowdStrike API Specification
*
* Use this API specification as a reference for the API endpoints you can use to interact with your Falcon environment. These endpoints support authentication via OAuth2 and interact with detections and network containment. For detailed usage guides and examples, see our [documentation inside the Falcon console](https://falcon.crowdstrike.com/support/documentation). To use the APIs described below, combine the base URL with the path shown for each API endpoint. For commercial cloud customers, your base URL is `https://api.crowdstrike.com`. Each API endpoint requires authorization via an OAuth2 token. Your first API request should retrieve an OAuth2 token using the `oauth2/token` endpoint, such as `https://api.crowdstrike.com/oauth2/token`. For subsequent requests, include the OAuth2 token in an HTTP authorization header. Tokens expire after 30 minutes, after which you should make a new token request to continue making API requests.
*
* The version of the OpenAPI document: rolling
*
* Generated by: https://openapi-generator.tech
*/
use crate::models;
/// DomainDiscoverApiApplication : Represents information about an application.
#[derive(Clone, Default, Debug, PartialEq, Serialize, Deserialize)]
pub struct DomainDiscoverApiApplication {
/// Represents the application architectures (x86 / x64).
#[serde(rename = "architectures", skip_serializing_if = "Option::is_none")]
pub architectures: Option<Vec<String>>,
#[serde(rename = "browser_extension", skip_serializing_if = "Option::is_none")]
pub browser_extension: Option<Box<models::DomainDiscoverApiApplicationBrowserExtension>>,
/// The category of the application.
#[serde(rename = "category", skip_serializing_if = "Option::is_none")]
pub category: Option<String>,
/// The customer ID of this application.
#[serde(rename = "cid")]
pub cid: String,
/// Timestamp when this application was first seen by the cloud.
#[serde(
rename = "first_seen_timestamp",
skip_serializing_if = "Option::is_none"
)]
pub first_seen_timestamp: Option<String>,
/// The user defined groups this application is part of.
#[serde(rename = "groups", skip_serializing_if = "Option::is_none")]
pub groups: Option<Vec<String>>,
#[serde(rename = "host", skip_serializing_if = "Option::is_none")]
pub host: Option<Box<models::DomainDiscoverApiApplicationHost>>,
/// The unique ID for the application.
#[serde(rename = "id")]
pub id: String,
/// The file paths where the application is installed on the host. Or the locations of the executables.
#[serde(rename = "installation_paths", skip_serializing_if = "Option::is_none")]
pub installation_paths: Option<Vec<String>>,
/// Timestamp when the application was installed on the host. We might not have this data.
#[serde(
rename = "installation_timestamp",
skip_serializing_if = "Option::is_none"
)]
pub installation_timestamp: Option<String>,
/// Whether or not the application is normalized
#[serde(rename = "is_normalized", skip_serializing_if = "Option::is_none")]
pub is_normalized: Option<bool>,
/// Whether or not the application is suspicious
#[serde(rename = "is_suspicious", skip_serializing_if = "Option::is_none")]
pub is_suspicious: Option<bool>,
/// Timestamp when this application was last updated (something changed in the application or in the host data).
#[serde(
rename = "last_updated_timestamp",
skip_serializing_if = "Option::is_none"
)]
pub last_updated_timestamp: Option<String>,
/// The file hash that was last used for this application.
#[serde(
rename = "last_used_file_hash",
skip_serializing_if = "Option::is_none"
)]
pub last_used_file_hash: Option<String>,
/// The file name that was last used for this application.
#[serde(
rename = "last_used_file_name",
skip_serializing_if = "Option::is_none"
)]
pub last_used_file_name: Option<String>,
/// Timestamp when this application was last used.
#[serde(
rename = "last_used_timestamp",
skip_serializing_if = "Option::is_none"
)]
pub last_used_timestamp: Option<String>,
/// The username of the user that last used this application.
#[serde(
rename = "last_used_user_name",
skip_serializing_if = "Option::is_none"
)]
pub last_used_user_name: Option<String>,
/// The user SID of the last user that used this application.
#[serde(rename = "last_used_user_sid", skip_serializing_if = "Option::is_none")]
pub last_used_user_sid: Option<String>,
/// The name of the application.
#[serde(rename = "name", skip_serializing_if = "Option::is_none")]
pub name: Option<String>,
/// The combined field on which we will be able to group by app.
#[serde(rename = "name_vendor", skip_serializing_if = "Option::is_none")]
pub name_vendor: Option<String>,
/// The combined field on which we will be able to group by app + version.
#[serde(
rename = "name_vendor_version",
skip_serializing_if = "Option::is_none"
)]
pub name_vendor_version: Option<String>,
/// The type of software of the application.
#[serde(rename = "software_type", skip_serializing_if = "Option::is_none")]
pub software_type: Option<String>,
/// The name the application's vendor.
#[serde(rename = "vendor", skip_serializing_if = "Option::is_none")]
pub vendor: Option<String>,
/// The version of the application.
#[serde(rename = "version", skip_serializing_if = "Option::is_none")]
pub version: Option<String>,
/// The version scheme of the application.
#[serde(rename = "versioning_scheme", skip_serializing_if = "Option::is_none")]
pub versioning_scheme: Option<String>,
}
impl DomainDiscoverApiApplication {
/// Represents information about an application.
pub fn new(cid: String, id: String) -> DomainDiscoverApiApplication {
DomainDiscoverApiApplication {
architectures: None,
browser_extension: None,
category: None,
cid,
first_seen_timestamp: None,
groups: None,
host: None,
id,
installation_paths: None,
installation_timestamp: None,
is_normalized: None,
is_suspicious: None,
last_updated_timestamp: None,
last_used_file_hash: None,
last_used_file_name: None,
last_used_timestamp: None,
last_used_user_name: None,
last_used_user_sid: None,
name: None,
name_vendor: None,
name_vendor_version: None,
software_type: None,
vendor: None,
version: None,
versioning_scheme: None,
}
}
}