AutoScalingGroup.fromXml constructor

AutoScalingGroup.fromXml(
  1. XmlElement elem
)

Implementation

factory AutoScalingGroup.fromXml(_s.XmlElement elem) {
  return AutoScalingGroup(
    autoScalingGroupName:
        _s.extractXmlStringValue(elem, 'AutoScalingGroupName')!,
    availabilityZones: _s.extractXmlStringListValues(
        _s.extractXmlChild(elem, 'AvailabilityZones')!, 'member'),
    createdTime: _s.extractXmlDateTimeValue(elem, 'CreatedTime')!,
    defaultCooldown: _s.extractXmlIntValue(elem, 'DefaultCooldown')!,
    desiredCapacity: _s.extractXmlIntValue(elem, 'DesiredCapacity')!,
    healthCheckType: _s.extractXmlStringValue(elem, 'HealthCheckType')!,
    maxSize: _s.extractXmlIntValue(elem, 'MaxSize')!,
    minSize: _s.extractXmlIntValue(elem, 'MinSize')!,
    autoScalingGroupARN:
        _s.extractXmlStringValue(elem, 'AutoScalingGroupARN'),
    capacityRebalance: _s.extractXmlBoolValue(elem, 'CapacityRebalance'),
    enabledMetrics: _s.extractXmlChild(elem, 'EnabledMetrics')?.let((elem) =>
        elem
            .findElements('member')
            .map((c) => EnabledMetric.fromXml(c))
            .toList()),
    healthCheckGracePeriod:
        _s.extractXmlIntValue(elem, 'HealthCheckGracePeriod'),
    instances: _s.extractXmlChild(elem, 'Instances')?.let((elem) =>
        elem.findElements('member').map((c) => Instance.fromXml(c)).toList()),
    launchConfigurationName:
        _s.extractXmlStringValue(elem, 'LaunchConfigurationName'),
    launchTemplate: _s
        .extractXmlChild(elem, 'LaunchTemplate')
        ?.let((e) => LaunchTemplateSpecification.fromXml(e)),
    loadBalancerNames: _s
        .extractXmlChild(elem, 'LoadBalancerNames')
        ?.let((elem) => _s.extractXmlStringListValues(elem, 'member')),
    maxInstanceLifetime: _s.extractXmlIntValue(elem, 'MaxInstanceLifetime'),
    mixedInstancesPolicy: _s
        .extractXmlChild(elem, 'MixedInstancesPolicy')
        ?.let((e) => MixedInstancesPolicy.fromXml(e)),
    newInstancesProtectedFromScaleIn:
        _s.extractXmlBoolValue(elem, 'NewInstancesProtectedFromScaleIn'),
    placementGroup: _s.extractXmlStringValue(elem, 'PlacementGroup'),
    serviceLinkedRoleARN:
        _s.extractXmlStringValue(elem, 'ServiceLinkedRoleARN'),
    status: _s.extractXmlStringValue(elem, 'Status'),
    suspendedProcesses: _s.extractXmlChild(elem, 'SuspendedProcesses')?.let(
        (elem) => elem
            .findElements('member')
            .map((c) => SuspendedProcess.fromXml(c))
            .toList()),
    tags: _s.extractXmlChild(elem, 'Tags')?.let((elem) => elem
        .findElements('member')
        .map((c) => TagDescription.fromXml(c))
        .toList()),
    targetGroupARNs: _s
        .extractXmlChild(elem, 'TargetGroupARNs')
        ?.let((elem) => _s.extractXmlStringListValues(elem, 'member')),
    terminationPolicies: _s
        .extractXmlChild(elem, 'TerminationPolicies')
        ?.let((elem) => _s.extractXmlStringListValues(elem, 'member')),
    vPCZoneIdentifier: _s.extractXmlStringValue(elem, 'VPCZoneIdentifier'),
  );
}