//!
//! MISP Automation API
//!
//! ### Getting Started MISP API allows you to query, create, modify data models, such as [Events](https://www.circl.lu/doc/misp/GLOSSARY.html#misp-event), [Objects](https://www.circl.lu/doc/misp/misp-objects/), [Attributes](https://www.circl.lu/doc/misp/GLOSSARY.html#misp-attribute). This is extremly useful for interconnecting MISP with external tools and feeding other systems with threat intel data. It also lets you perform administrative tasks such as creating users, organisations, altering MISP settings, and much more. To get an API key there are several options: * **[UI]** Go to [My Profile -> Auth Keys](/auth_keys/index) section and click on `+ Add authentication key` * **[UI]** As an admin go to the the [Administration -> List Users -> View](/admin/users/view/[id]) page of the user you want to create an auth key for and on the `Auth keys` section click on `+ Add authentication key` * **[CLI]** Use the following command: `./app/Console/cake user change_authkey [e-mail/user_id]` * **API** Provided you already have an admin level API key, you can create an API key for another user using the `[POST]/auth_keys/add/{{user_id}}` endpoint. > **NOTE:** The authentication key will only be displayed once, so take note of it or store it properly in your application secrets. #### Accept and Content-Type headers When performing your request, depending on the type of request, you might need to explicitly specify in what content type you want to get your results. This is done by setting one of the below `Accept` headers: Accept: application/json Accept: application/xml When submitting data in a `POST`, `PUT` or `DELETE` operation you also need to specify in what content-type you encoded the payload. This is done by setting one of the below `Content-Type` headers: Content-Type: application/json Content-Type: application/xml Example: ``` curl --header \"Authorization: YOUR_API_KEY\" \\ --header \"Accept: application/json\" \\ --header \"Content-Type: application/json\" https://<misp url>/ ``` > **NOTE**: By appending .json or .xml the content type can also be set without the need for a header. #### Automation using PyMISP [PyMISP](https://github.com/MISP/PyMISP) is a Python library to access MISP platforms via their REST [API](https://www.circl.lu/doc/misp/GLOSSARY.html#api). It allows you to fetch events, add or update events/attributes, add or update samples or search for attributes. ### FAQ * [Dev FAQ](https://www.circl.lu/doc/misp/dev-faq/) * [GitHub project FAQ](https://github.com/MISP/MISP/wiki/Frequently-Asked-Questions)
//!
//! The version of the OpenAPI document: 2.4
//!
//! Generated by: https://openapi-generator.tech
//!
use crate::models;
use serde::{Deserialize, Serialize};
///
#[derive(Clone, Copy, Debug, Eq, PartialEq, Ord, PartialOrd, Hash, Serialize, Deserialize)]
pub enum AttributeType {
#[serde(rename = "md5")]
Md5,
#[serde(rename = "sha1")]
Sha1,
#[serde(rename = "sha256")]
Sha256,
#[serde(rename = "filename")]
Filename,
#[serde(rename = "pdb")]
Pdb,
#[serde(rename = "filename|md5")]
FilenamePipeMd5,
#[serde(rename = "filename|sha1")]
FilenamePipeSha1,
#[serde(rename = "filename|sha256")]
FilenamePipeSha256,
#[serde(rename = "ip-src")]
IpSrc,
#[serde(rename = "ip-dst")]
IpDst,
#[serde(rename = "hostname")]
Hostname,
#[serde(rename = "domain")]
Domain,
#[serde(rename = "domain|ip")]
DomainPipeIp,
#[serde(rename = "email")]
Email,
#[serde(rename = "email-src")]
EmailSrc,
#[serde(rename = "eppn")]
Eppn,
#[serde(rename = "email-dst")]
EmailDst,
#[serde(rename = "email-subject")]
EmailSubject,
#[serde(rename = "email-attachment")]
EmailAttachment,
#[serde(rename = "email-body")]
EmailBody,
#[serde(rename = "float")]
Float,
#[serde(rename = "git-commit-id")]
GitCommitId,
#[serde(rename = "url")]
Url,
#[serde(rename = "http-method")]
HttpMethod,
#[serde(rename = "user-agent")]
UserAgent,
#[serde(rename = "ja3-fingerprint-md5")]
Ja3FingerprintMd5,
#[serde(rename = "jarm-fingerprint")]
JarmFingerprint,
#[serde(rename = "favicon-mmh3")]
FaviconMmh3,
#[serde(rename = "hassh-md5")]
HasshMd5,
#[serde(rename = "hasshserver-md5")]
HasshserverMd5,
#[serde(rename = "regkey")]
Regkey,
#[serde(rename = "regkey|value")]
RegkeyPipeValue,
#[serde(rename = "AS")]
As,
#[serde(rename = "snort")]
Snort,
#[serde(rename = "bro")]
Bro,
#[serde(rename = "zeek")]
Zeek,
#[serde(rename = "community-id")]
CommunityId,
#[serde(rename = "pattern-in-file")]
PatternInFile,
#[serde(rename = "pattern-in-traffic")]
PatternInTraffic,
#[serde(rename = "pattern-in-memory")]
PatternInMemory,
#[serde(rename = "pattern-filename")]
PatternFilename,
#[serde(rename = "pgp-public-key")]
PgpPublicKey,
#[serde(rename = "pgp-private-key")]
PgpPrivateKey,
#[serde(rename = "yara")]
Yara,
#[serde(rename = "stix2-pattern")]
Stix2Pattern,
#[serde(rename = "sigma")]
Sigma,
#[serde(rename = "gene")]
Gene,
#[serde(rename = "kusto-query")]
KustoQuery,
#[serde(rename = "mime-type")]
MimeType,
#[serde(rename = "identity-card-number")]
IdentityCardNumber,
#[serde(rename = "cookie")]
Cookie,
#[serde(rename = "vulnerability")]
Vulnerability,
#[serde(rename = "cpe")]
Cpe,
#[serde(rename = "weakness")]
Weakness,
#[serde(rename = "attachment")]
Attachment,
#[serde(rename = "malware-sample")]
MalwareSample,
#[serde(rename = "link")]
Link,
#[serde(rename = "comment")]
Comment,
#[serde(rename = "text")]
Text,
#[serde(rename = "hex")]
Hex,
#[serde(rename = "other")]
Other,
#[serde(rename = "named pipe")]
NamedPipe,
#[serde(rename = "mutex")]
Mutex,
#[serde(rename = "process-state")]
ProcessState,
#[serde(rename = "target-user")]
TargetUser,
#[serde(rename = "target-email")]
TargetEmail,
#[serde(rename = "target-machine")]
TargetMachine,
#[serde(rename = "target-org")]
TargetOrg,
#[serde(rename = "target-location")]
TargetLocation,
#[serde(rename = "target-external")]
TargetExternal,
#[serde(rename = "btc")]
Btc,
#[serde(rename = "dash")]
Dash,
#[serde(rename = "xmr")]
Xmr,
#[serde(rename = "iban")]
Iban,
#[serde(rename = "bic")]
Bic,
#[serde(rename = "bank-account-nr")]
BankAccountNr,
#[serde(rename = "aba-rtn")]
AbaRtn,
#[serde(rename = "bin")]
Bin,
#[serde(rename = "cc-number")]
CcNumber,
#[serde(rename = "prtn")]
Prtn,
#[serde(rename = "phone-number")]
PhoneNumber,
#[serde(rename = "threat-actor")]
ThreatActor,
#[serde(rename = "campaign-name")]
CampaignName,
#[serde(rename = "campaign-id")]
CampaignId,
#[serde(rename = "malware-type")]
MalwareType,
#[serde(rename = "uri")]
Uri,
#[serde(rename = "authentihash")]
Authentihash,
#[serde(rename = "vhash")]
Vhash,
#[serde(rename = "ssdeep")]
Ssdeep,
#[serde(rename = "imphash")]
Imphash,
#[serde(rename = "telfhash")]
Telfhash,
#[serde(rename = "pehash")]
Pehash,
#[serde(rename = "impfuzzy")]
Impfuzzy,
#[serde(rename = "sha224")]
Sha224,
#[serde(rename = "sha384")]
Sha384,
#[serde(rename = "sha512")]
Sha512,
#[serde(rename = "sha512/224")]
Sha512Slash224,
#[serde(rename = "sha512/256")]
Sha512Slash256,
#[serde(rename = "sha3-224")]
Sha3224,
#[serde(rename = "sha3-256")]
Sha3256,
#[serde(rename = "sha3-384")]
Sha3384,
#[serde(rename = "sha3-512")]
Sha3512,
#[serde(rename = "tlsh")]
Tlsh,
#[serde(rename = "cdhash")]
Cdhash,
#[serde(rename = "filename|authentihash")]
FilenamePipeAuthentihash,
#[serde(rename = "filename|vhash")]
FilenamePipeVhash,
#[serde(rename = "filename|ssdeep")]
FilenamePipeSsdeep,
#[serde(rename = "filename|imphash")]
FilenamePipeImphash,
#[serde(rename = "filename|impfuzzy")]
FilenamePipeImpfuzzy,
#[serde(rename = "filename|pehash")]
FilenamePipePehash,
#[serde(rename = "filename|sha224")]
FilenamePipeSha224,
#[serde(rename = "filename|sha384")]
FilenamePipeSha384,
#[serde(rename = "filename|sha512")]
FilenamePipeSha512,
#[serde(rename = "filename|sha512/224")]
FilenamePipeSha512Slash224,
#[serde(rename = "filename|sha512/256")]
FilenamePipeSha512Slash256,
#[serde(rename = "filename|sha3-224")]
FilenamePipeSha3224,
#[serde(rename = "filename|sha3-256")]
FilenamePipeSha3256,
#[serde(rename = "filename|sha3-384")]
FilenamePipeSha3384,
#[serde(rename = "filename|sha3-512")]
FilenamePipeSha3512,
#[serde(rename = "filename|tlsh")]
FilenamePipeTlsh,
#[serde(rename = "windows-scheduled-task")]
WindowsScheduledTask,
#[serde(rename = "windows-service-name")]
WindowsServiceName,
#[serde(rename = "windows-service-displayname")]
WindowsServiceDisplayname,
#[serde(rename = "whois-registrant-email")]
WhoisRegistrantEmail,
#[serde(rename = "whois-registrant-phone")]
WhoisRegistrantPhone,
#[serde(rename = "whois-registrant-name")]
WhoisRegistrantName,
#[serde(rename = "whois-registrant-org")]
WhoisRegistrantOrg,
#[serde(rename = "whois-registrar")]
WhoisRegistrar,
#[serde(rename = "whois-creation-date")]
WhoisCreationDate,
#[serde(rename = "x509-fingerprint-sha1")]
X509FingerprintSha1,
#[serde(rename = "x509-fingerprint-md5")]
X509FingerprintMd5,
#[serde(rename = "x509-fingerprint-sha256")]
X509FingerprintSha256,
#[serde(rename = "dns-soa-email")]
DnsSoaEmail,
#[serde(rename = "size-in-bytes")]
SizeInBytes,
#[serde(rename = "counter")]
Counter,
#[serde(rename = "datetime")]
Datetime,
#[serde(rename = "port")]
Port,
#[serde(rename = "ip-dst|port")]
IpDstPipePort,
#[serde(rename = "ip-src|port")]
IpSrcPipePort,
#[serde(rename = "hostname|port")]
HostnamePipePort,
#[serde(rename = "mac-address")]
MacAddress,
#[serde(rename = "mac-eui-64")]
MacEui64,
#[serde(rename = "email-dst-display-name")]
EmailDstDisplayName,
#[serde(rename = "email-src-display-name")]
EmailSrcDisplayName,
#[serde(rename = "email-header")]
EmailHeader,
#[serde(rename = "email-reply-to")]
EmailReplyTo,
#[serde(rename = "email-x-mailer")]
EmailXMailer,
#[serde(rename = "email-mime-boundary")]
EmailMimeBoundary,
#[serde(rename = "email-thread-index")]
EmailThreadIndex,
#[serde(rename = "email-message-id")]
EmailMessageId,
#[serde(rename = "github-username")]
GithubUsername,
#[serde(rename = "github-repository")]
GithubRepository,
#[serde(rename = "github-organisation")]
GithubOrganisation,
#[serde(rename = "jabber-id")]
JabberId,
#[serde(rename = "twitter-id")]
TwitterId,
#[serde(rename = "dkim")]
Dkim,
#[serde(rename = "dkim-signature")]
DkimSignature,
#[serde(rename = "first-name")]
FirstName,
#[serde(rename = "middle-name")]
MiddleName,
#[serde(rename = "last-name")]
LastName,
#[serde(rename = "full-name")]
FullName,
#[serde(rename = "date-of-birth")]
DateOfBirth,
#[serde(rename = "place-of-birth")]
PlaceOfBirth,
#[serde(rename = "gender")]
Gender,
#[serde(rename = "passport-number")]
PassportNumber,
#[serde(rename = "passport-country")]
PassportCountry,
#[serde(rename = "passport-expiration")]
PassportExpiration,
#[serde(rename = "redress-number")]
RedressNumber,
#[serde(rename = "nationality")]
Nationality,
#[serde(rename = "visa-number")]
VisaNumber,
#[serde(rename = "issue-date-of-the-visa")]
IssueDateOfTheVisa,
#[serde(rename = "primary-residence")]
PrimaryResidence,
#[serde(rename = "country-of-residence")]
CountryOfResidence,
#[serde(rename = "special-service-request")]
SpecialServiceRequest,
#[serde(rename = "frequent-flyer-number")]
FrequentFlyerNumber,
#[serde(rename = "travel-details")]
TravelDetails,
#[serde(rename = "payment-details")]
PaymentDetails,
#[serde(rename = "place-port-of-original-embarkation")]
PlacePortOfOriginalEmbarkation,
#[serde(rename = "place-port-of-clearance")]
PlacePortOfClearance,
#[serde(rename = "place-port-of-onward-foreign-destination")]
PlacePortOfOnwardForeignDestination,
#[serde(rename = "passenger-name-record-locator-number")]
PassengerNameRecordLocatorNumber,
#[serde(rename = "mobile-application-id")]
MobileApplicationId,
#[serde(rename = "chrome-extension-id")]
ChromeExtensionId,
#[serde(rename = "cortex")]
Cortex,
#[serde(rename = "boolean")]
Boolean,
#[serde(rename = "anonymised")]
Anonymised,
}
impl std::fmt::Display for AttributeType {
fn fmt(&self, f: &mut std::fmt::Formatter) -> std::fmt::Result {
match self {
Self::Md5 => write!(f, "md5"),
Self::Sha1 => write!(f, "sha1"),
Self::Sha256 => write!(f, "sha256"),
Self::Filename => write!(f, "filename"),
Self::Pdb => write!(f, "pdb"),
Self::FilenamePipeMd5 => write!(f, "filename|md5"),
Self::FilenamePipeSha1 => write!(f, "filename|sha1"),
Self::FilenamePipeSha256 => write!(f, "filename|sha256"),
Self::IpSrc => write!(f, "ip-src"),
Self::IpDst => write!(f, "ip-dst"),
Self::Hostname => write!(f, "hostname"),
Self::Domain => write!(f, "domain"),
Self::DomainPipeIp => write!(f, "domain|ip"),
Self::Email => write!(f, "email"),
Self::EmailSrc => write!(f, "email-src"),
Self::Eppn => write!(f, "eppn"),
Self::EmailDst => write!(f, "email-dst"),
Self::EmailSubject => write!(f, "email-subject"),
Self::EmailAttachment => write!(f, "email-attachment"),
Self::EmailBody => write!(f, "email-body"),
Self::Float => write!(f, "float"),
Self::GitCommitId => write!(f, "git-commit-id"),
Self::Url => write!(f, "url"),
Self::HttpMethod => write!(f, "http-method"),
Self::UserAgent => write!(f, "user-agent"),
Self::Ja3FingerprintMd5 => write!(f, "ja3-fingerprint-md5"),
Self::JarmFingerprint => write!(f, "jarm-fingerprint"),
Self::FaviconMmh3 => write!(f, "favicon-mmh3"),
Self::HasshMd5 => write!(f, "hassh-md5"),
Self::HasshserverMd5 => write!(f, "hasshserver-md5"),
Self::Regkey => write!(f, "regkey"),
Self::RegkeyPipeValue => write!(f, "regkey|value"),
Self::As => write!(f, "AS"),
Self::Snort => write!(f, "snort"),
Self::Bro => write!(f, "bro"),
Self::Zeek => write!(f, "zeek"),
Self::CommunityId => write!(f, "community-id"),
Self::PatternInFile => write!(f, "pattern-in-file"),
Self::PatternInTraffic => write!(f, "pattern-in-traffic"),
Self::PatternInMemory => write!(f, "pattern-in-memory"),
Self::PatternFilename => write!(f, "pattern-filename"),
Self::PgpPublicKey => write!(f, "pgp-public-key"),
Self::PgpPrivateKey => write!(f, "pgp-private-key"),
Self::Yara => write!(f, "yara"),
Self::Stix2Pattern => write!(f, "stix2-pattern"),
Self::Sigma => write!(f, "sigma"),
Self::Gene => write!(f, "gene"),
Self::KustoQuery => write!(f, "kusto-query"),
Self::MimeType => write!(f, "mime-type"),
Self::IdentityCardNumber => write!(f, "identity-card-number"),
Self::Cookie => write!(f, "cookie"),
Self::Vulnerability => write!(f, "vulnerability"),
Self::Cpe => write!(f, "cpe"),
Self::Weakness => write!(f, "weakness"),
Self::Attachment => write!(f, "attachment"),
Self::MalwareSample => write!(f, "malware-sample"),
Self::Link => write!(f, "link"),
Self::Comment => write!(f, "comment"),
Self::Text => write!(f, "text"),
Self::Hex => write!(f, "hex"),
Self::Other => write!(f, "other"),
Self::NamedPipe => write!(f, "named pipe"),
Self::Mutex => write!(f, "mutex"),
Self::ProcessState => write!(f, "process-state"),
Self::TargetUser => write!(f, "target-user"),
Self::TargetEmail => write!(f, "target-email"),
Self::TargetMachine => write!(f, "target-machine"),
Self::TargetOrg => write!(f, "target-org"),
Self::TargetLocation => write!(f, "target-location"),
Self::TargetExternal => write!(f, "target-external"),
Self::Btc => write!(f, "btc"),
Self::Dash => write!(f, "dash"),
Self::Xmr => write!(f, "xmr"),
Self::Iban => write!(f, "iban"),
Self::Bic => write!(f, "bic"),
Self::BankAccountNr => write!(f, "bank-account-nr"),
Self::AbaRtn => write!(f, "aba-rtn"),
Self::Bin => write!(f, "bin"),
Self::CcNumber => write!(f, "cc-number"),
Self::Prtn => write!(f, "prtn"),
Self::PhoneNumber => write!(f, "phone-number"),
Self::ThreatActor => write!(f, "threat-actor"),
Self::CampaignName => write!(f, "campaign-name"),
Self::CampaignId => write!(f, "campaign-id"),
Self::MalwareType => write!(f, "malware-type"),
Self::Uri => write!(f, "uri"),
Self::Authentihash => write!(f, "authentihash"),
Self::Vhash => write!(f, "vhash"),
Self::Ssdeep => write!(f, "ssdeep"),
Self::Imphash => write!(f, "imphash"),
Self::Telfhash => write!(f, "telfhash"),
Self::Pehash => write!(f, "pehash"),
Self::Impfuzzy => write!(f, "impfuzzy"),
Self::Sha224 => write!(f, "sha224"),
Self::Sha384 => write!(f, "sha384"),
Self::Sha512 => write!(f, "sha512"),
Self::Sha512Slash224 => write!(f, "sha512/224"),
Self::Sha512Slash256 => write!(f, "sha512/256"),
Self::Sha3224 => write!(f, "sha3-224"),
Self::Sha3256 => write!(f, "sha3-256"),
Self::Sha3384 => write!(f, "sha3-384"),
Self::Sha3512 => write!(f, "sha3-512"),
Self::Tlsh => write!(f, "tlsh"),
Self::Cdhash => write!(f, "cdhash"),
Self::FilenamePipeAuthentihash => write!(f, "filename|authentihash"),
Self::FilenamePipeVhash => write!(f, "filename|vhash"),
Self::FilenamePipeSsdeep => write!(f, "filename|ssdeep"),
Self::FilenamePipeImphash => write!(f, "filename|imphash"),
Self::FilenamePipeImpfuzzy => write!(f, "filename|impfuzzy"),
Self::FilenamePipePehash => write!(f, "filename|pehash"),
Self::FilenamePipeSha224 => write!(f, "filename|sha224"),
Self::FilenamePipeSha384 => write!(f, "filename|sha384"),
Self::FilenamePipeSha512 => write!(f, "filename|sha512"),
Self::FilenamePipeSha512Slash224 => write!(f, "filename|sha512/224"),
Self::FilenamePipeSha512Slash256 => write!(f, "filename|sha512/256"),
Self::FilenamePipeSha3224 => write!(f, "filename|sha3-224"),
Self::FilenamePipeSha3256 => write!(f, "filename|sha3-256"),
Self::FilenamePipeSha3384 => write!(f, "filename|sha3-384"),
Self::FilenamePipeSha3512 => write!(f, "filename|sha3-512"),
Self::FilenamePipeTlsh => write!(f, "filename|tlsh"),
Self::WindowsScheduledTask => write!(f, "windows-scheduled-task"),
Self::WindowsServiceName => write!(f, "windows-service-name"),
Self::WindowsServiceDisplayname => write!(f, "windows-service-displayname"),
Self::WhoisRegistrantEmail => write!(f, "whois-registrant-email"),
Self::WhoisRegistrantPhone => write!(f, "whois-registrant-phone"),
Self::WhoisRegistrantName => write!(f, "whois-registrant-name"),
Self::WhoisRegistrantOrg => write!(f, "whois-registrant-org"),
Self::WhoisRegistrar => write!(f, "whois-registrar"),
Self::WhoisCreationDate => write!(f, "whois-creation-date"),
Self::X509FingerprintSha1 => write!(f, "x509-fingerprint-sha1"),
Self::X509FingerprintMd5 => write!(f, "x509-fingerprint-md5"),
Self::X509FingerprintSha256 => write!(f, "x509-fingerprint-sha256"),
Self::DnsSoaEmail => write!(f, "dns-soa-email"),
Self::SizeInBytes => write!(f, "size-in-bytes"),
Self::Counter => write!(f, "counter"),
Self::Datetime => write!(f, "datetime"),
Self::Port => write!(f, "port"),
Self::IpDstPipePort => write!(f, "ip-dst|port"),
Self::IpSrcPipePort => write!(f, "ip-src|port"),
Self::HostnamePipePort => write!(f, "hostname|port"),
Self::MacAddress => write!(f, "mac-address"),
Self::MacEui64 => write!(f, "mac-eui-64"),
Self::EmailDstDisplayName => write!(f, "email-dst-display-name"),
Self::EmailSrcDisplayName => write!(f, "email-src-display-name"),
Self::EmailHeader => write!(f, "email-header"),
Self::EmailReplyTo => write!(f, "email-reply-to"),
Self::EmailXMailer => write!(f, "email-x-mailer"),
Self::EmailMimeBoundary => write!(f, "email-mime-boundary"),
Self::EmailThreadIndex => write!(f, "email-thread-index"),
Self::EmailMessageId => write!(f, "email-message-id"),
Self::GithubUsername => write!(f, "github-username"),
Self::GithubRepository => write!(f, "github-repository"),
Self::GithubOrganisation => write!(f, "github-organisation"),
Self::JabberId => write!(f, "jabber-id"),
Self::TwitterId => write!(f, "twitter-id"),
Self::Dkim => write!(f, "dkim"),
Self::DkimSignature => write!(f, "dkim-signature"),
Self::FirstName => write!(f, "first-name"),
Self::MiddleName => write!(f, "middle-name"),
Self::LastName => write!(f, "last-name"),
Self::FullName => write!(f, "full-name"),
Self::DateOfBirth => write!(f, "date-of-birth"),
Self::PlaceOfBirth => write!(f, "place-of-birth"),
Self::Gender => write!(f, "gender"),
Self::PassportNumber => write!(f, "passport-number"),
Self::PassportCountry => write!(f, "passport-country"),
Self::PassportExpiration => write!(f, "passport-expiration"),
Self::RedressNumber => write!(f, "redress-number"),
Self::Nationality => write!(f, "nationality"),
Self::VisaNumber => write!(f, "visa-number"),
Self::IssueDateOfTheVisa => write!(f, "issue-date-of-the-visa"),
Self::PrimaryResidence => write!(f, "primary-residence"),
Self::CountryOfResidence => write!(f, "country-of-residence"),
Self::SpecialServiceRequest => write!(f, "special-service-request"),
Self::FrequentFlyerNumber => write!(f, "frequent-flyer-number"),
Self::TravelDetails => write!(f, "travel-details"),
Self::PaymentDetails => write!(f, "payment-details"),
Self::PlacePortOfOriginalEmbarkation => write!(f, "place-port-of-original-embarkation"),
Self::PlacePortOfClearance => write!(f, "place-port-of-clearance"),
Self::PlacePortOfOnwardForeignDestination => write!(f, "place-port-of-onward-foreign-destination"),
Self::PassengerNameRecordLocatorNumber => write!(f, "passenger-name-record-locator-number"),
Self::MobileApplicationId => write!(f, "mobile-application-id"),
Self::ChromeExtensionId => write!(f, "chrome-extension-id"),
Self::Cortex => write!(f, "cortex"),
Self::Boolean => write!(f, "boolean"),
Self::Anonymised => write!(f, "anonymised"),
}
}
}
impl Default for AttributeType {
fn default() -> AttributeType {
Self::Md5
}
}