#![doc = "generated by AutoRust"]
#![allow(non_camel_case_types)]
#![allow(unused_imports)]
use serde::{Deserialize, Serialize};
#[derive(Clone, Debug, PartialEq, Serialize, Deserialize)]
pub struct ApiKeyAuthentication {
#[serde(flatten)]
pub rest_request_authentication: RestRequestAuthentication,
pub name: String,
#[serde(rename = "in")]
pub in_: api_key_authentication::In,
pub value: String,
}
impl ApiKeyAuthentication {
pub fn new(
rest_request_authentication: RestRequestAuthentication,
name: String,
in_: api_key_authentication::In,
value: String,
) -> Self {
Self {
rest_request_authentication,
name,
in_,
value,
}
}
}
pub mod api_key_authentication {
use super::*;
#[derive(Clone, Debug, PartialEq, Serialize, Deserialize)]
pub enum In {
Query,
Header,
}
}
#[derive(Clone, Debug, PartialEq, Serialize, Deserialize)]
pub struct ArtifactSource {
#[serde(flatten)]
pub tracked_resource: TrackedResource,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub properties: Option<serde_json::Value>,
}
impl ArtifactSource {
pub fn new(tracked_resource: TrackedResource) -> Self {
Self {
tracked_resource,
properties: None,
}
}
}
pub type ArtifactSourceListResult = Vec<ArtifactSource>;
#[derive(Clone, Debug, PartialEq, Serialize, Deserialize)]
pub struct ArtifactSourceProperties {
#[serde(rename = "sourceType")]
pub source_type: String,
#[serde(rename = "artifactRoot", default, skip_serializing_if = "Option::is_none")]
pub artifact_root: Option<String>,
pub authentication: Authentication,
}
impl ArtifactSourceProperties {
pub fn new(source_type: String, authentication: Authentication) -> Self {
Self {
source_type,
artifact_root: None,
authentication,
}
}
}
#[derive(Clone, Debug, PartialEq, Serialize, Deserialize)]
pub struct Authentication {
#[serde(rename = "type")]
pub type_: String,
}
impl Authentication {
pub fn new(type_: String) -> Self {
Self { type_ }
}
}
#[derive(Clone, Debug, PartialEq, Serialize, Deserialize, Default)]
pub struct CloudError {
#[serde(default, skip_serializing_if = "Option::is_none")]
pub error: Option<CloudErrorBody>,
}
impl CloudError {
pub fn new() -> Self {
Self::default()
}
}
#[derive(Clone, Debug, PartialEq, Serialize, Deserialize, Default)]
pub struct CloudErrorBody {
#[serde(default, skip_serializing_if = "Option::is_none")]
pub code: Option<String>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub message: Option<String>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub target: Option<String>,
#[serde(default, skip_serializing_if = "Vec::is_empty")]
pub details: Vec<CloudErrorBody>,
}
impl CloudErrorBody {
pub fn new() -> Self {
Self::default()
}
}
#[derive(Clone, Debug, PartialEq, Serialize, Deserialize)]
pub struct HealthCheckStepAttributes {
#[serde(rename = "type")]
pub type_: String,
#[serde(rename = "waitDuration", default, skip_serializing_if = "Option::is_none")]
pub wait_duration: Option<String>,
#[serde(rename = "maxElasticDuration", default, skip_serializing_if = "Option::is_none")]
pub max_elastic_duration: Option<String>,
#[serde(rename = "healthyStateDuration")]
pub healthy_state_duration: String,
}
impl HealthCheckStepAttributes {
pub fn new(type_: String, healthy_state_duration: String) -> Self {
Self {
type_,
wait_duration: None,
max_elastic_duration: None,
healthy_state_duration,
}
}
}
#[derive(Clone, Debug, PartialEq, Serialize, Deserialize)]
pub struct HealthCheckStepProperties {
#[serde(flatten)]
pub step_properties: StepProperties,
pub attributes: HealthCheckStepAttributes,
}
impl HealthCheckStepProperties {
pub fn new(step_properties: StepProperties, attributes: HealthCheckStepAttributes) -> Self {
Self {
step_properties,
attributes,
}
}
}
#[derive(Clone, Debug, PartialEq, Serialize, Deserialize)]
pub struct Identity {
#[serde(rename = "type")]
pub type_: String,
#[serde(rename = "identityIds")]
pub identity_ids: Vec<String>,
}
impl Identity {
pub fn new(type_: String, identity_ids: Vec<String>) -> Self {
Self { type_, identity_ids }
}
}
#[derive(Clone, Debug, PartialEq, Serialize, Deserialize, Default)]
pub struct Message {
#[serde(rename = "timeStamp", default, skip_serializing_if = "Option::is_none")]
pub time_stamp: Option<String>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub message: Option<String>,
}
impl Message {
pub fn new() -> Self {
Self::default()
}
}
#[derive(Clone, Debug, PartialEq, Serialize, Deserialize, Default)]
pub struct Operation {
#[serde(default, skip_serializing_if = "Option::is_none")]
pub name: Option<String>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub display: Option<OperationDetail>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub origin: Option<String>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub properties: Option<serde_json::Value>,
}
impl Operation {
pub fn new() -> Self {
Self::default()
}
}
#[derive(Clone, Debug, PartialEq, Serialize, Deserialize, Default)]
pub struct OperationDetail {
#[serde(default, skip_serializing_if = "Option::is_none")]
pub provider: Option<String>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub resource: Option<String>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub operation: Option<String>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub description: Option<String>,
}
impl OperationDetail {
pub fn new() -> Self {
Self::default()
}
}
#[derive(Clone, Debug, PartialEq, Serialize, Deserialize, Default)]
pub struct OperationsList {
#[serde(default, skip_serializing_if = "Option::is_none")]
pub value: Option<Operation>,
}
impl OperationsList {
pub fn new() -> Self {
Self::default()
}
}
#[derive(Clone, Debug, PartialEq, Serialize, Deserialize)]
pub struct PrePostStep {
#[serde(rename = "stepId")]
pub step_id: String,
}
impl PrePostStep {
pub fn new(step_id: String) -> Self {
Self { step_id }
}
}
#[derive(Clone, Debug, PartialEq, Serialize, Deserialize, Default)]
pub struct Resource {
#[serde(default, skip_serializing_if = "Option::is_none")]
pub id: Option<String>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub name: Option<String>,
#[serde(rename = "type", default, skip_serializing_if = "Option::is_none")]
pub type_: Option<String>,
}
impl Resource {
pub fn new() -> Self {
Self::default()
}
}
#[derive(Clone, Debug, PartialEq, Serialize, Deserialize, Default)]
pub struct ResourceOperation {
#[serde(rename = "resourceName", default, skip_serializing_if = "Option::is_none")]
pub resource_name: Option<String>,
#[serde(rename = "operationId", default, skip_serializing_if = "Option::is_none")]
pub operation_id: Option<String>,
#[serde(rename = "resourceType", default, skip_serializing_if = "Option::is_none")]
pub resource_type: Option<String>,
#[serde(rename = "provisioningState", default, skip_serializing_if = "Option::is_none")]
pub provisioning_state: Option<String>,
#[serde(rename = "statusMessage", default, skip_serializing_if = "Option::is_none")]
pub status_message: Option<String>,
#[serde(rename = "statusCode", default, skip_serializing_if = "Option::is_none")]
pub status_code: Option<String>,
}
impl ResourceOperation {
pub fn new() -> Self {
Self::default()
}
}
#[derive(Clone, Debug, PartialEq, Serialize, Deserialize)]
pub struct RestHealthCheck {
pub name: String,
pub request: RestRequest,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub response: Option<RestResponse>,
}
impl RestHealthCheck {
pub fn new(name: String, request: RestRequest) -> Self {
Self {
name,
request,
response: None,
}
}
}
#[derive(Clone, Debug, PartialEq, Serialize, Deserialize)]
pub struct RestHealthCheckStepAttributes {
#[serde(flatten)]
pub health_check_step_attributes: HealthCheckStepAttributes,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub properties: Option<RestParameters>,
}
impl RestHealthCheckStepAttributes {
pub fn new(health_check_step_attributes: HealthCheckStepAttributes) -> Self {
Self {
health_check_step_attributes,
properties: None,
}
}
}
#[derive(Clone, Debug, PartialEq, Serialize, Deserialize)]
pub struct RestParameters {
#[serde(rename = "healthChecks")]
pub health_checks: Vec<RestHealthCheck>,
}
impl RestParameters {
pub fn new(health_checks: Vec<RestHealthCheck>) -> Self {
Self { health_checks }
}
}
#[derive(Clone, Debug, PartialEq, Serialize, Deserialize)]
pub struct RestRequest {
pub method: rest_request::Method,
pub uri: String,
pub authentication: RestRequestAuthentication,
}
impl RestRequest {
pub fn new(method: rest_request::Method, uri: String, authentication: RestRequestAuthentication) -> Self {
Self {
method,
uri,
authentication,
}
}
}
pub mod rest_request {
use super::*;
#[derive(Clone, Debug, PartialEq, Serialize, Deserialize)]
pub enum Method {
#[serde(rename = "GET")]
Get,
#[serde(rename = "POST")]
Post,
}
}
#[derive(Clone, Debug, PartialEq, Serialize, Deserialize)]
pub struct RestRequestAuthentication {
#[serde(rename = "type")]
pub type_: rest_request_authentication::Type,
}
impl RestRequestAuthentication {
pub fn new(type_: rest_request_authentication::Type) -> Self {
Self { type_ }
}
}
pub mod rest_request_authentication {
use super::*;
#[derive(Clone, Debug, PartialEq, Serialize, Deserialize)]
pub enum Type {
ApiKey,
RolloutIdentity,
}
}
#[derive(Clone, Debug, PartialEq, Serialize, Deserialize, Default)]
pub struct RestResponse {
#[serde(rename = "successStatusCodes", default, skip_serializing_if = "Vec::is_empty")]
pub success_status_codes: Vec<String>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub regex: Option<rest_response::Regex>,
}
impl RestResponse {
pub fn new() -> Self {
Self::default()
}
}
pub mod rest_response {
use super::*;
#[derive(Clone, Debug, PartialEq, Serialize, Deserialize, Default)]
pub struct Regex {
#[serde(default, skip_serializing_if = "Vec::is_empty")]
pub matches: Vec<String>,
#[serde(rename = "matchQuantifier", default, skip_serializing_if = "Option::is_none")]
pub match_quantifier: Option<regex::MatchQuantifier>,
}
impl Regex {
pub fn new() -> Self {
Self::default()
}
}
pub mod regex {
use super::*;
#[derive(Clone, Debug, PartialEq, Serialize, Deserialize)]
pub enum MatchQuantifier {
All,
Any,
}
}
}
#[derive(Clone, Debug, PartialEq, Serialize, Deserialize)]
pub struct Rollout {
#[serde(flatten)]
pub tracked_resource: TrackedResource,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub identity: Option<Identity>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub properties: Option<serde_json::Value>,
}
impl Rollout {
pub fn new(tracked_resource: TrackedResource) -> Self {
Self {
tracked_resource,
identity: None,
properties: None,
}
}
}
#[derive(Clone, Debug, PartialEq, Serialize, Deserialize)]
pub struct RolloutIdentityAuthentication {
#[serde(flatten)]
pub rest_request_authentication: RestRequestAuthentication,
}
impl RolloutIdentityAuthentication {
pub fn new(rest_request_authentication: RestRequestAuthentication) -> Self {
Self {
rest_request_authentication,
}
}
}
pub type RolloutListResult = Vec<Rollout>;
#[derive(Clone, Debug, PartialEq, Serialize, Deserialize, Default)]
pub struct RolloutOperationInfo {
#[serde(rename = "retryAttempt", default, skip_serializing_if = "Option::is_none")]
pub retry_attempt: Option<i32>,
#[serde(rename = "skipSucceededOnRetry", default, skip_serializing_if = "Option::is_none")]
pub skip_succeeded_on_retry: Option<bool>,
#[serde(rename = "startTime", default, skip_serializing_if = "Option::is_none")]
pub start_time: Option<String>,
#[serde(rename = "endTime", default, skip_serializing_if = "Option::is_none")]
pub end_time: Option<String>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub error: Option<CloudErrorBody>,
}
impl RolloutOperationInfo {
pub fn new() -> Self {
Self::default()
}
}
#[derive(Clone, Debug, PartialEq, Serialize, Deserialize, Default)]
pub struct RolloutProperties {
#[serde(default, skip_serializing_if = "Option::is_none")]
pub status: Option<String>,
#[serde(rename = "totalRetryAttempts", default, skip_serializing_if = "Option::is_none")]
pub total_retry_attempts: Option<i32>,
#[serde(rename = "operationInfo", default, skip_serializing_if = "Option::is_none")]
pub operation_info: Option<RolloutOperationInfo>,
#[serde(default, skip_serializing_if = "Vec::is_empty")]
pub services: Vec<Service>,
}
impl RolloutProperties {
pub fn new() -> Self {
Self::default()
}
}
#[derive(Clone, Debug, PartialEq, Serialize, Deserialize)]
pub struct RolloutRequest {
#[serde(flatten)]
pub tracked_resource: TrackedResource,
pub identity: Identity,
pub properties: RolloutRequestProperties,
}
impl RolloutRequest {
pub fn new(tracked_resource: TrackedResource, identity: Identity, properties: RolloutRequestProperties) -> Self {
Self {
tracked_resource,
identity,
properties,
}
}
}
#[derive(Clone, Debug, PartialEq, Serialize, Deserialize)]
pub struct RolloutRequestProperties {
#[serde(rename = "buildVersion")]
pub build_version: String,
#[serde(rename = "artifactSourceId", default, skip_serializing_if = "Option::is_none")]
pub artifact_source_id: Option<String>,
#[serde(rename = "targetServiceTopologyId")]
pub target_service_topology_id: String,
#[serde(rename = "stepGroups")]
pub step_groups: Vec<StepGroup>,
}
impl RolloutRequestProperties {
pub fn new(build_version: String, target_service_topology_id: String, step_groups: Vec<StepGroup>) -> Self {
Self {
build_version,
artifact_source_id: None,
target_service_topology_id,
step_groups,
}
}
}
#[derive(Clone, Debug, PartialEq, Serialize, Deserialize)]
pub struct RolloutStep {
pub name: String,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub status: Option<String>,
#[serde(rename = "stepGroup", default, skip_serializing_if = "Option::is_none")]
pub step_group: Option<String>,
#[serde(rename = "operationInfo", default, skip_serializing_if = "Option::is_none")]
pub operation_info: Option<StepOperationInfo>,
#[serde(rename = "resourceOperations", default, skip_serializing_if = "Vec::is_empty")]
pub resource_operations: Vec<ResourceOperation>,
#[serde(default, skip_serializing_if = "Vec::is_empty")]
pub messages: Vec<Message>,
}
impl RolloutStep {
pub fn new(name: String) -> Self {
Self {
name,
status: None,
step_group: None,
operation_info: None,
resource_operations: Vec::new(),
messages: Vec::new(),
}
}
}
#[derive(Clone, Debug, PartialEq, Serialize, Deserialize)]
pub struct SasAuthentication {
#[serde(flatten)]
pub authentication: Authentication,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub properties: Option<SasProperties>,
}
impl SasAuthentication {
pub fn new(authentication: Authentication) -> Self {
Self {
authentication,
properties: None,
}
}
}
#[derive(Clone, Debug, PartialEq, Serialize, Deserialize)]
pub struct SasProperties {
#[serde(rename = "sasUri")]
pub sas_uri: String,
}
impl SasProperties {
pub fn new(sas_uri: String) -> Self {
Self { sas_uri }
}
}
#[derive(Clone, Debug, PartialEq, Serialize, Deserialize)]
pub struct Service {
#[serde(flatten)]
pub service_properties: ServiceProperties,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub name: Option<String>,
#[serde(rename = "serviceUnits", default, skip_serializing_if = "Vec::is_empty")]
pub service_units: Vec<ServiceUnit>,
}
impl Service {
pub fn new(service_properties: ServiceProperties) -> Self {
Self {
service_properties,
name: None,
service_units: Vec::new(),
}
}
}
pub type ServiceListResult = Vec<ServiceResource>;
#[derive(Clone, Debug, PartialEq, Serialize, Deserialize)]
pub struct ServiceProperties {
#[serde(rename = "targetLocation")]
pub target_location: String,
#[serde(rename = "targetSubscriptionId")]
pub target_subscription_id: String,
}
impl ServiceProperties {
pub fn new(target_location: String, target_subscription_id: String) -> Self {
Self {
target_location,
target_subscription_id,
}
}
}
#[derive(Clone, Debug, PartialEq, Serialize, Deserialize)]
pub struct ServiceResource {
#[serde(flatten)]
pub tracked_resource: TrackedResource,
pub properties: serde_json::Value,
}
impl ServiceResource {
pub fn new(tracked_resource: TrackedResource, properties: serde_json::Value) -> Self {
Self {
tracked_resource,
properties,
}
}
}
pub type ServiceTopologiesListResult = Vec<ServiceTopologyResource>;
#[derive(Clone, Debug, PartialEq, Serialize, Deserialize, Default)]
pub struct ServiceTopologyProperties {
#[serde(rename = "artifactSourceId", default, skip_serializing_if = "Option::is_none")]
pub artifact_source_id: Option<String>,
}
impl ServiceTopologyProperties {
pub fn new() -> Self {
Self::default()
}
}
#[derive(Clone, Debug, PartialEq, Serialize, Deserialize)]
pub struct ServiceTopologyResource {
#[serde(flatten)]
pub tracked_resource: TrackedResource,
pub properties: serde_json::Value,
}
impl ServiceTopologyResource {
pub fn new(tracked_resource: TrackedResource, properties: serde_json::Value) -> Self {
Self {
tracked_resource,
properties,
}
}
}
#[derive(Clone, Debug, PartialEq, Serialize, Deserialize)]
pub struct ServiceUnit {
#[serde(flatten)]
pub service_unit_properties: ServiceUnitProperties,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub name: Option<String>,
#[serde(default, skip_serializing_if = "Vec::is_empty")]
pub steps: Vec<RolloutStep>,
}
impl ServiceUnit {
pub fn new(service_unit_properties: ServiceUnitProperties) -> Self {
Self {
service_unit_properties,
name: None,
steps: Vec::new(),
}
}
}
#[derive(Clone, Debug, PartialEq, Serialize, Deserialize, Default)]
pub struct ServiceUnitArtifacts {
#[serde(rename = "templateUri", default, skip_serializing_if = "Option::is_none")]
pub template_uri: Option<String>,
#[serde(rename = "parametersUri", default, skip_serializing_if = "Option::is_none")]
pub parameters_uri: Option<String>,
#[serde(rename = "templateArtifactSourceRelativePath", default, skip_serializing_if = "Option::is_none")]
pub template_artifact_source_relative_path: Option<String>,
#[serde(rename = "parametersArtifactSourceRelativePath", default, skip_serializing_if = "Option::is_none")]
pub parameters_artifact_source_relative_path: Option<String>,
}
impl ServiceUnitArtifacts {
pub fn new() -> Self {
Self::default()
}
}
pub type ServiceUnitListResult = Vec<ServiceUnitResource>;
#[derive(Clone, Debug, PartialEq, Serialize, Deserialize)]
pub struct ServiceUnitProperties {
#[serde(rename = "targetResourceGroup")]
pub target_resource_group: String,
#[serde(rename = "deploymentMode")]
pub deployment_mode: service_unit_properties::DeploymentMode,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub artifacts: Option<ServiceUnitArtifacts>,
}
impl ServiceUnitProperties {
pub fn new(target_resource_group: String, deployment_mode: service_unit_properties::DeploymentMode) -> Self {
Self {
target_resource_group,
deployment_mode,
artifacts: None,
}
}
}
pub mod service_unit_properties {
use super::*;
#[derive(Clone, Debug, PartialEq, Serialize, Deserialize)]
pub enum DeploymentMode {
Incremental,
Complete,
}
}
#[derive(Clone, Debug, PartialEq, Serialize, Deserialize)]
pub struct ServiceUnitResource {
#[serde(flatten)]
pub tracked_resource: TrackedResource,
pub properties: serde_json::Value,
}
impl ServiceUnitResource {
pub fn new(tracked_resource: TrackedResource, properties: serde_json::Value) -> Self {
Self {
tracked_resource,
properties,
}
}
}
#[derive(Clone, Debug, PartialEq, Serialize, Deserialize)]
pub struct StepGroup {
pub name: String,
#[serde(rename = "dependsOnStepGroups", default, skip_serializing_if = "Vec::is_empty")]
pub depends_on_step_groups: Vec<String>,
#[serde(rename = "preDeploymentSteps", default, skip_serializing_if = "Vec::is_empty")]
pub pre_deployment_steps: Vec<PrePostStep>,
#[serde(rename = "deploymentTargetId")]
pub deployment_target_id: String,
#[serde(rename = "postDeploymentSteps", default, skip_serializing_if = "Vec::is_empty")]
pub post_deployment_steps: Vec<PrePostStep>,
}
impl StepGroup {
pub fn new(name: String, deployment_target_id: String) -> Self {
Self {
name,
depends_on_step_groups: Vec::new(),
pre_deployment_steps: Vec::new(),
deployment_target_id,
post_deployment_steps: Vec::new(),
}
}
}
#[derive(Clone, Debug, PartialEq, Serialize, Deserialize, Default)]
pub struct StepOperationInfo {
#[serde(rename = "deploymentName", default, skip_serializing_if = "Option::is_none")]
pub deployment_name: Option<String>,
#[serde(rename = "correlationId", default, skip_serializing_if = "Option::is_none")]
pub correlation_id: Option<String>,
#[serde(rename = "startTime", default, skip_serializing_if = "Option::is_none")]
pub start_time: Option<String>,
#[serde(rename = "endTime", default, skip_serializing_if = "Option::is_none")]
pub end_time: Option<String>,
#[serde(rename = "lastUpdatedTime", default, skip_serializing_if = "Option::is_none")]
pub last_updated_time: Option<String>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub error: Option<CloudErrorBody>,
}
impl StepOperationInfo {
pub fn new() -> Self {
Self::default()
}
}
#[derive(Clone, Debug, PartialEq, Serialize, Deserialize)]
pub struct StepProperties {
#[serde(rename = "stepType")]
pub step_type: step_properties::StepType,
}
impl StepProperties {
pub fn new(step_type: step_properties::StepType) -> Self {
Self { step_type }
}
}
pub mod step_properties {
use super::*;
#[derive(Clone, Debug, PartialEq, Serialize, Deserialize)]
pub enum StepType {
Wait,
HealthCheck,
}
}
#[derive(Clone, Debug, PartialEq, Serialize, Deserialize)]
pub struct StepResource {
#[serde(flatten)]
pub tracked_resource: TrackedResource,
pub properties: StepProperties,
}
impl StepResource {
pub fn new(tracked_resource: TrackedResource, properties: StepProperties) -> Self {
Self {
tracked_resource,
properties,
}
}
}
pub type StepResourceListResult = Vec<StepResource>;
#[derive(Clone, Debug, PartialEq, Serialize, Deserialize)]
pub struct TrackedResource {
#[serde(flatten)]
pub resource: Resource,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub tags: Option<serde_json::Value>,
pub location: String,
}
impl TrackedResource {
pub fn new(location: String) -> Self {
Self {
resource: Resource::default(),
tags: None,
location,
}
}
}
#[derive(Clone, Debug, PartialEq, Serialize, Deserialize)]
pub struct WaitStepAttributes {
pub duration: String,
}
impl WaitStepAttributes {
pub fn new(duration: String) -> Self {
Self { duration }
}
}
#[derive(Clone, Debug, PartialEq, Serialize, Deserialize)]
pub struct WaitStepProperties {
#[serde(flatten)]
pub step_properties: StepProperties,
pub attributes: WaitStepAttributes,
}
impl WaitStepProperties {
pub fn new(step_properties: StepProperties, attributes: WaitStepAttributes) -> Self {
Self {
step_properties,
attributes,
}
}
}