use crate::os_management_hub::models::*;
#[derive(Debug, Default, Clone)]
pub struct ListManagedInstancesRequest {
pub compartment_id: Option<String>,
pub display_name: Option<Vec<String>>,
pub display_name_contains: Option<String>,
pub managed_instance_id: Option<String>,
pub status: Option<Vec<ManagedInstanceStatus>>,
pub arch_type: Option<Vec<ArchType>>,
pub os_family: Option<Vec<OsFamily>>,
pub is_management_station: Option<bool>,
pub group: Option<String>,
pub group_not_equal_to: Option<String>,
pub lifecycle_stage: Option<String>,
pub lifecycle_stage_not_equal_to: Option<String>,
pub is_attached_to_group_or_lifecycle_stage: Option<bool>,
pub software_source_id: Option<String>,
pub advisory_name: Option<Vec<String>>,
pub lifecycle_environment: Option<String>,
pub lifecycle_environment_not_equal_to: Option<String>,
pub location: Option<Vec<ManagedInstanceLocation>>,
pub location_not_equal_to: Option<Vec<ManagedInstanceLocation>>,
pub profile: Option<Vec<String>>,
pub profile_not_equal_to: Option<Vec<String>>,
pub is_profile_attached: Option<bool>,
pub is_managed_by_autonomous_linux: Option<bool>,
pub agent_version: Option<String>,
pub management_station: Option<Vec<String>>,
pub management_station_not_equal_to: Option<Vec<String>>,
pub is_reboot_required: Option<bool>,
pub limit: Option<u32>,
pub page: Option<String>,
pub sort_order: Option<SortOrder>,
pub sort_by: Option<ListManagedInstancesSortBy>,
pub opc_request_id: Option<String>,
}
impl ListManagedInstancesRequest {
pub fn builder() -> ListManagedInstancesRequestBuilder {
ListManagedInstancesRequestBuilder::default()
}
pub fn to_query_params(&self) -> Vec<(String, String)> {
let mut params = Vec::new();
if let Some(ref v) = self.compartment_id {
params.push(("compartmentId".to_string(), v.clone()));
}
if let Some(ref v) = self.display_name {
for name in v {
params.push(("displayName".to_string(), name.clone()));
}
}
if let Some(ref v) = self.display_name_contains {
params.push(("displayNameContains".to_string(), v.clone()));
}
if let Some(ref v) = self.managed_instance_id {
params.push(("managedInstanceId".to_string(), v.clone()));
}
if let Some(ref v) = self.status {
for status in v {
params.push(("status".to_string(), format!("{:?}", status).to_uppercase()));
}
}
if let Some(ref v) = self.arch_type {
for arch in v {
params.push(("archType".to_string(), format!("{:?}", arch).to_uppercase()));
}
}
if let Some(ref v) = self.os_family {
for os in v {
params.push(("osFamily".to_string(), format!("{:?}", os)));
}
}
if let Some(v) = self.is_management_station {
params.push(("isManagementStation".to_string(), v.to_string()));
}
if let Some(ref v) = self.group {
params.push(("group".to_string(), v.clone()));
}
if let Some(ref v) = self.group_not_equal_to {
params.push(("groupNotEqualTo".to_string(), v.clone()));
}
if let Some(ref v) = self.lifecycle_stage {
params.push(("lifecycleStage".to_string(), v.clone()));
}
if let Some(ref v) = self.lifecycle_stage_not_equal_to {
params.push(("lifecycleStageNotEqualTo".to_string(), v.clone()));
}
if let Some(v) = self.is_attached_to_group_or_lifecycle_stage {
params.push((
"isAttachedToGroupOrLifecycleStage".to_string(),
v.to_string(),
));
}
if let Some(ref v) = self.software_source_id {
params.push(("softwareSourceId".to_string(), v.clone()));
}
if let Some(ref v) = self.advisory_name {
for name in v {
params.push(("advisoryName".to_string(), name.clone()));
}
}
if let Some(ref v) = self.lifecycle_environment {
params.push(("lifecycleEnvironment".to_string(), v.clone()));
}
if let Some(ref v) = self.lifecycle_environment_not_equal_to {
params.push(("lifecycleEnvironmentNotEqualTo".to_string(), v.clone()));
}
if let Some(ref v) = self.location {
for loc in v {
params.push(("location".to_string(), format!("{:?}", loc)));
}
}
if let Some(ref v) = self.location_not_equal_to {
for loc in v {
params.push(("locationNotEqualTo".to_string(), format!("{:?}", loc)));
}
}
if let Some(ref v) = self.profile {
for p in v {
params.push(("profile".to_string(), p.clone()));
}
}
if let Some(ref v) = self.profile_not_equal_to {
for p in v {
params.push(("profileNotEqualTo".to_string(), p.clone()));
}
}
if let Some(v) = self.is_profile_attached {
params.push(("isProfileAttached".to_string(), v.to_string()));
}
if let Some(v) = self.is_managed_by_autonomous_linux {
params.push(("isManagedByAutonomousLinux".to_string(), v.to_string()));
}
if let Some(ref v) = self.agent_version {
params.push(("agentVersion".to_string(), v.clone()));
}
if let Some(ref v) = self.management_station {
for ms in v {
params.push(("managementStation".to_string(), ms.clone()));
}
}
if let Some(ref v) = self.management_station_not_equal_to {
for ms in v {
params.push(("managementStationNotEqualTo".to_string(), ms.clone()));
}
}
if let Some(v) = self.is_reboot_required {
params.push(("isRebootRequired".to_string(), v.to_string()));
}
if let Some(v) = self.limit {
params.push(("limit".to_string(), v.to_string()));
}
if let Some(ref v) = self.page {
params.push(("page".to_string(), v.clone()));
}
if let Some(v) = self.sort_order {
params.push(("sortOrder".to_string(), format!("{:?}", v).to_uppercase()));
}
if let Some(v) = self.sort_by {
params.push(("sortBy".to_string(), v.to_string()));
}
params
}
}
#[derive(Debug, Default)]
pub struct ListManagedInstancesRequestBuilder {
request: ListManagedInstancesRequest,
}
impl ListManagedInstancesRequestBuilder {
pub fn compartment_id(mut self, compartment_id: impl Into<String>) -> Self {
self.request.compartment_id = Some(compartment_id.into());
self
}
pub fn set_compartment_id(mut self, compartment_id: Option<impl Into<String>>) -> Self {
self.request.compartment_id = compartment_id.map(|c| c.into());
self
}
pub fn display_name(mut self, display_name: Vec<String>) -> Self {
self.request.display_name = Some(display_name);
self
}
pub fn set_display_name(mut self, display_name: Option<Vec<String>>) -> Self {
self.request.display_name = display_name;
self
}
pub fn display_name_contains(mut self, display_name_contains: impl Into<String>) -> Self {
self.request.display_name_contains = Some(display_name_contains.into());
self
}
pub fn set_display_name_contains(mut self, display_name_contains: Option<impl Into<String>>) -> Self {
self.request.display_name_contains = display_name_contains.map(|d| d.into());
self
}
pub fn status(mut self, status: Vec<ManagedInstanceStatus>) -> Self {
self.request.status = Some(status);
self
}
pub fn set_status(mut self, status: Option<Vec<ManagedInstanceStatus>>) -> Self {
self.request.status = status;
self
}
pub fn arch_type(mut self, arch_type: Vec<ArchType>) -> Self {
self.request.arch_type = Some(arch_type);
self
}
pub fn set_arch_type(mut self, arch_type: Option<Vec<ArchType>>) -> Self {
self.request.arch_type = arch_type;
self
}
pub fn os_family(mut self, os_family: Vec<OsFamily>) -> Self {
self.request.os_family = Some(os_family);
self
}
pub fn set_os_family(mut self, os_family: Option<Vec<OsFamily>>) -> Self {
self.request.os_family = os_family;
self
}
pub fn limit(mut self, limit: u32) -> Self {
self.request.limit = Some(limit);
self
}
pub fn set_limit(mut self, limit: Option<u32>) -> Self {
self.request.limit = limit;
self
}
pub fn page(mut self, page: impl Into<String>) -> Self {
self.request.page = Some(page.into());
self
}
pub fn set_page(mut self, page: Option<impl Into<String>>) -> Self {
self.request.page = page.map(|p| p.into());
self
}
pub fn sort_order(mut self, sort_order: SortOrder) -> Self {
self.request.sort_order = Some(sort_order);
self
}
pub fn set_sort_order(mut self, sort_order: Option<SortOrder>) -> Self {
self.request.sort_order = sort_order;
self
}
pub fn sort_by(mut self, sort_by: ListManagedInstancesSortBy) -> Self {
self.request.sort_by = Some(sort_by);
self
}
pub fn set_sort_by(mut self, sort_by: Option<ListManagedInstancesSortBy>) -> Self {
self.request.sort_by = sort_by;
self
}
pub fn build(self) -> ListManagedInstancesRequest {
self.request
}
}
#[derive(Debug, Clone)]
pub struct ListManagedInstancesResponse {
pub managed_instance_collection: ManagedInstanceCollection,
pub opc_request_id: Option<String>,
pub opc_next_page: Option<String>,
pub opc_total_items: Option<u32>,
}