#![allow(non_camel_case_types)]
#![allow(unused_imports)]
use serde::de::{value, Deserializer, IntoDeserializer};
use serde::{Deserialize, Serialize, Serializer};
use std::str::FromStr;
#[doc = ""]
#[derive(Clone, Debug, PartialEq, Serialize, Deserialize, Default)]
pub struct GraphSubjectBase {
#[doc = "Links"]
#[serde(rename = "_links", default, skip_serializing_if = "Option::is_none")]
pub links: Option<serde_json::Value>,
#[doc = "The descriptor is the primary way to reference the graph subject while the system is running. This field will uniquely identify the same graph subject across both Accounts and Organizations."]
#[serde(default, skip_serializing_if = "Option::is_none")]
pub descriptor: Option<String>,
#[doc = "This is the non-unique display name of the graph subject. To change this field, you must alter its value in the source provider."]
#[serde(
rename = "displayName",
default,
skip_serializing_if = "Option::is_none"
)]
pub display_name: Option<String>,
#[doc = "This url is the full route to the source resource of this graph subject."]
#[serde(default, skip_serializing_if = "Option::is_none")]
pub url: Option<String>,
}
impl GraphSubjectBase {
pub fn new() -> Self {
Self::default()
}
}
#[doc = ""]
#[derive(Clone, Debug, PartialEq, Serialize, Deserialize)]
pub struct IdentityRef {
#[serde(flatten)]
pub graph_subject_base: GraphSubjectBase,
#[doc = "Deprecated - Can be retrieved by querying the Graph user referenced in the \"self\" entry of the IdentityRef \"_links\" dictionary"]
#[serde(
rename = "directoryAlias",
default,
skip_serializing_if = "Option::is_none"
)]
pub directory_alias: Option<String>,
pub id: String,
#[doc = "Deprecated - Available in the \"avatar\" entry of the IdentityRef \"_links\" dictionary"]
#[serde(rename = "imageUrl", default, skip_serializing_if = "Option::is_none")]
pub image_url: Option<String>,
#[doc = "Deprecated - Can be retrieved by querying the Graph membership state referenced in the \"membershipState\" entry of the GraphUser \"_links\" dictionary"]
#[serde(default, skip_serializing_if = "Option::is_none")]
pub inactive: Option<bool>,
#[doc = "Deprecated - Can be inferred from the subject type of the descriptor (Descriptor.IsAadUserType/Descriptor.IsAadGroupType)"]
#[serde(
rename = "isAadIdentity",
default,
skip_serializing_if = "Option::is_none"
)]
pub is_aad_identity: Option<bool>,
#[doc = "Deprecated - Can be inferred from the subject type of the descriptor (Descriptor.IsGroupType)"]
#[serde(
rename = "isContainer",
default,
skip_serializing_if = "Option::is_none"
)]
pub is_container: Option<bool>,
#[serde(
rename = "isDeletedInOrigin",
default,
skip_serializing_if = "Option::is_none"
)]
pub is_deleted_in_origin: Option<bool>,
#[doc = "Deprecated - not in use in most preexisting implementations of ToIdentityRef"]
#[serde(
rename = "profileUrl",
default,
skip_serializing_if = "Option::is_none"
)]
pub profile_url: Option<String>,
#[doc = "Deprecated - use Domain+PrincipalName instead"]
#[serde(rename = "uniqueName")]
pub unique_name: String,
}
impl IdentityRef {
pub fn new(id: String, unique_name: String) -> Self {
Self {
graph_subject_base: GraphSubjectBase::default(),
directory_alias: None,
id,
image_url: None,
inactive: None,
is_aad_identity: None,
is_container: None,
is_deleted_in_origin: None,
profile_url: None,
unique_name,
}
}
}
#[doc = "Represents a JSON object."]
#[derive(Clone, Debug, PartialEq, Serialize, Deserialize, Default)]
pub struct JObject {
#[serde(default, skip_serializing_if = "Option::is_none")]
pub item: Option<String>,
#[doc = "Gets the node type for this JToken."]
#[serde(rename = "type", default, skip_serializing_if = "Option::is_none")]
pub type_: Option<String>,
}
impl JObject {
pub fn new() -> Self {
Self::default()
}
}
#[doc = "The full policy configuration with settings."]
#[derive(Clone, Debug, PartialEq, Serialize, Deserialize, Default)]
pub struct PolicyConfiguration {
#[serde(flatten)]
pub versioned_policy_configuration_ref: VersionedPolicyConfigurationRef,
#[doc = "Links"]
#[serde(rename = "_links", default, skip_serializing_if = "Option::is_none")]
pub links: Option<serde_json::Value>,
#[doc = ""]
#[serde(rename = "createdBy", default, skip_serializing_if = "Option::is_none")]
pub created_by: Option<IdentityRef>,
#[doc = "The date and time when the policy was created."]
#[serde(
rename = "createdDate",
default,
with = "crate::date_time::rfc3339::option"
)]
pub created_date: Option<time::OffsetDateTime>,
#[doc = "Indicates whether the policy is blocking."]
#[serde(
rename = "isBlocking",
default,
skip_serializing_if = "Option::is_none"
)]
pub is_blocking: Option<bool>,
#[doc = "Indicates whether the policy has been (soft) deleted."]
#[serde(rename = "isDeleted", default, skip_serializing_if = "Option::is_none")]
pub is_deleted: Option<bool>,
#[doc = "Indicates whether the policy is enabled."]
#[serde(rename = "isEnabled", default, skip_serializing_if = "Option::is_none")]
pub is_enabled: Option<bool>,
#[doc = "If set, this policy requires \"Manage Enterprise Policies\" permission to create, edit, or delete."]
#[serde(
rename = "isEnterpriseManaged",
default,
skip_serializing_if = "Option::is_none"
)]
pub is_enterprise_managed: Option<bool>,
#[doc = "Represents a JSON object."]
#[serde(default, skip_serializing_if = "Option::is_none")]
pub settings: Option<JObject>,
}
impl PolicyConfiguration {
pub fn new() -> Self {
Self::default()
}
}
#[doc = ""]
#[derive(Clone, Debug, PartialEq, Serialize, Deserialize, Default)]
pub struct PolicyConfigurationList {
#[serde(default, skip_serializing_if = "Option::is_none")]
pub count: Option<i32>,
#[serde(
default,
skip_serializing_if = "Vec::is_empty",
deserialize_with = "crate::serde::deserialize_null_default"
)]
pub value: Vec<PolicyConfiguration>,
}
impl PolicyConfigurationList {
pub fn new() -> Self {
Self::default()
}
}
#[doc = "Policy configuration reference."]
#[derive(Clone, Debug, PartialEq, Serialize, Deserialize, Default)]
pub struct PolicyConfigurationRef {
#[doc = "The policy configuration ID."]
#[serde(default, skip_serializing_if = "Option::is_none")]
pub id: Option<i32>,
#[doc = "Policy type reference."]
#[serde(rename = "type", default, skip_serializing_if = "Option::is_none")]
pub type_: Option<PolicyTypeRef>,
#[doc = "The URL where the policy configuration can be retrieved."]
#[serde(default, skip_serializing_if = "Option::is_none")]
pub url: Option<String>,
}
impl PolicyConfigurationRef {
pub fn new() -> Self {
Self::default()
}
}
#[doc = "This record encapsulates the current state of a policy as it applies to one specific pull request. Each pull request has a unique PolicyEvaluationRecord for each pull request which the policy applies to."]
#[derive(Clone, Debug, PartialEq, Serialize, Deserialize, Default)]
pub struct PolicyEvaluationRecord {
#[doc = "Links"]
#[serde(rename = "_links", default, skip_serializing_if = "Option::is_none")]
pub links: Option<serde_json::Value>,
#[doc = "A string which uniquely identifies the target of a policy evaluation."]
#[serde(
rename = "artifactId",
default,
skip_serializing_if = "Option::is_none"
)]
pub artifact_id: Option<String>,
#[doc = "Time when this policy finished evaluating on this pull request."]
#[serde(
rename = "completedDate",
default,
with = "crate::date_time::rfc3339::option"
)]
pub completed_date: Option<time::OffsetDateTime>,
#[doc = "The full policy configuration with settings."]
#[serde(default, skip_serializing_if = "Option::is_none")]
pub configuration: Option<PolicyConfiguration>,
#[doc = "Represents a JSON object."]
#[serde(default, skip_serializing_if = "Option::is_none")]
pub context: Option<JObject>,
#[doc = "Guid which uniquely identifies this evaluation record (one policy running on one pull request)."]
#[serde(
rename = "evaluationId",
default,
skip_serializing_if = "Option::is_none"
)]
pub evaluation_id: Option<String>,
#[doc = "Time when this policy was first evaluated on this pull request."]
#[serde(
rename = "startedDate",
default,
with = "crate::date_time::rfc3339::option"
)]
pub started_date: Option<time::OffsetDateTime>,
#[doc = "Status of the policy (Running, Approved, Failed, etc.)"]
#[serde(default, skip_serializing_if = "Option::is_none")]
pub status: Option<policy_evaluation_record::Status>,
}
impl PolicyEvaluationRecord {
pub fn new() -> Self {
Self::default()
}
}
pub mod policy_evaluation_record {
use super::*;
#[doc = "Status of the policy (Running, Approved, Failed, etc.)"]
#[derive(Clone, Debug, PartialEq, Serialize, Deserialize)]
pub enum Status {
#[serde(rename = "queued")]
Queued,
#[serde(rename = "running")]
Running,
#[serde(rename = "approved")]
Approved,
#[serde(rename = "rejected")]
Rejected,
#[serde(rename = "notApplicable")]
NotApplicable,
#[serde(rename = "broken")]
Broken,
}
}
#[doc = ""]
#[derive(Clone, Debug, PartialEq, Serialize, Deserialize, Default)]
pub struct PolicyEvaluationRecordList {
#[serde(default, skip_serializing_if = "Option::is_none")]
pub count: Option<i32>,
#[serde(
default,
skip_serializing_if = "Vec::is_empty",
deserialize_with = "crate::serde::deserialize_null_default"
)]
pub value: Vec<PolicyEvaluationRecord>,
}
impl PolicyEvaluationRecordList {
pub fn new() -> Self {
Self::default()
}
}
#[doc = "User-friendly policy type with description (used for querying policy types)."]
#[derive(Clone, Debug, PartialEq, Serialize, Deserialize)]
pub struct PolicyType {
#[serde(flatten)]
pub policy_type_ref: PolicyTypeRef,
#[doc = "Links"]
#[serde(rename = "_links")]
pub links: serde_json::Value,
#[doc = "Detailed description of the policy type."]
pub description: String,
}
impl PolicyType {
pub fn new(
policy_type_ref: PolicyTypeRef,
links: serde_json::Value,
description: String,
) -> Self {
Self {
policy_type_ref,
links,
description,
}
}
}
#[doc = ""]
#[derive(Clone, Debug, PartialEq, Serialize, Deserialize, Default)]
pub struct PolicyTypeList {
#[serde(default, skip_serializing_if = "Option::is_none")]
pub count: Option<i32>,
#[serde(
default,
skip_serializing_if = "Vec::is_empty",
deserialize_with = "crate::serde::deserialize_null_default"
)]
pub value: Vec<PolicyType>,
}
impl PolicyTypeList {
pub fn new() -> Self {
Self::default()
}
}
#[doc = "Policy type reference."]
#[derive(Clone, Debug, PartialEq, Serialize, Deserialize)]
pub struct PolicyTypeRef {
#[doc = "Display name of the policy type."]
#[serde(rename = "displayName")]
pub display_name: String,
#[doc = "The policy type ID."]
pub id: String,
#[doc = "The URL where the policy type can be retrieved."]
pub url: String,
}
impl PolicyTypeRef {
pub fn new(display_name: String, id: String, url: String) -> Self {
Self {
display_name,
id,
url,
}
}
}
#[doc = "The class to represent a collection of REST reference links."]
#[derive(Clone, Debug, PartialEq, Serialize, Deserialize, Default)]
pub struct ReferenceLinks {
#[doc = "The readonly view of the links. Because Reference links are readonly, we only want to expose them as read only."]
#[serde(default, skip_serializing_if = "Option::is_none")]
pub links: Option<serde_json::Value>,
}
impl ReferenceLinks {
pub fn new() -> Self {
Self::default()
}
}
#[doc = "A particular revision for a policy configuration."]
#[derive(Clone, Debug, PartialEq, Serialize, Deserialize, Default)]
pub struct VersionedPolicyConfigurationRef {
#[serde(flatten)]
pub policy_configuration_ref: PolicyConfigurationRef,
#[doc = "The policy configuration revision ID."]
#[serde(default, skip_serializing_if = "Option::is_none")]
pub revision: Option<i32>,
}
impl VersionedPolicyConfigurationRef {
pub fn new() -> Self {
Self::default()
}
}
#[doc = "This class is used to serialized collections as a single JSON object on the wire, to avoid serializing JSON arrays directly to the client, which can be a security hole"]
#[derive(Clone, Debug, PartialEq, Serialize, Deserialize, Default)]
pub struct VssJsonCollectionWrapper {
#[serde(flatten)]
pub vss_json_collection_wrapper_base: VssJsonCollectionWrapperBase,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub value: Option<String>,
}
impl VssJsonCollectionWrapper {
pub fn new() -> Self {
Self::default()
}
}
#[doc = ""]
#[derive(Clone, Debug, PartialEq, Serialize, Deserialize, Default)]
pub struct VssJsonCollectionWrapperBase {
#[serde(default, skip_serializing_if = "Option::is_none")]
pub count: Option<i32>,
}
impl VssJsonCollectionWrapperBase {
pub fn new() -> Self {
Self::default()
}
}