mmv1/products/compute/Autoscaler.yaml [168:364]:
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
        properties:
          - name: 'maxScaledDownReplicas'
            type: NestedObject
            at_least_one_of:
              - 'autoscaling_policy.0.scale_down_control.0.max_scaled_down_replicas'
              - 'autoscaling_policy.0.scale_down_control.0.time_window_sec'
            properties:
              - name: 'fixed'
                type: Integer
                description: |
                  Specifies a fixed number of VM instances. This must be a positive
                  integer.
                at_least_one_of:
                  - 'autoscaling_policy.0.scale_down_control.0.max_scaled_down_replicas.0.fixed'
                  - 'autoscaling_policy.0.scale_down_control.0.max_scaled_down_replicas.0.percent'
              - name: 'percent'
                type: Integer
                description: |
                  Specifies a percentage of instances between 0 to 100%, inclusive.
                  For example, specify 80 for 80%.
                at_least_one_of:
                  - 'autoscaling_policy.0.scale_down_control.0.max_scaled_down_replicas.0.fixed'
                  - 'autoscaling_policy.0.scale_down_control.0.max_scaled_down_replicas.0.percent'
          - name: 'timeWindowSec'
            type: Integer
            description: |
              How long back autoscaling should look when computing recommendations
              to include directives regarding slower scale down, as described above.
            at_least_one_of:
              - 'autoscaling_policy.0.scale_down_control.0.max_scaled_down_replicas'
              - 'autoscaling_policy.0.scale_down_control.0.time_window_sec'
      - name: 'scaleInControl'
        type: NestedObject
        description: |
          Defines scale in controls to reduce the risk of response latency
          and outages due to abrupt scale-in events
        properties:
          - name: 'maxScaledInReplicas'
            type: NestedObject
            at_least_one_of:
              - 'autoscaling_policy.0.scale_in_control.0.max_scaled_in_replicas'
              - 'autoscaling_policy.0.scale_in_control.0.time_window_sec'
            properties:
              - name: 'fixed'
                type: Integer
                description: |
                  Specifies a fixed number of VM instances. This must be a positive
                  integer.
                at_least_one_of:
                  - 'autoscaling_policy.0.scale_in_control.0.max_scaled_in_replicas.0.fixed'
                  - 'autoscaling_policy.0.scale_in_control.0.max_scaled_in_replicas.0.percent'
              - name: 'percent'
                type: Integer
                description: |
                  Specifies a percentage of instances between 0 to 100%, inclusive.
                  For example, specify 80 for 80%.
                at_least_one_of:
                  - 'autoscaling_policy.0.scale_in_control.0.max_scaled_in_replicas.0.fixed'
                  - 'autoscaling_policy.0.scale_in_control.0.max_scaled_in_replicas.0.percent'
          - name: 'timeWindowSec'
            type: Integer
            description: |
              How long back autoscaling should look when computing recommendations
              to include directives regarding slower scale down, as described above.
            at_least_one_of:
              - 'autoscaling_policy.0.scale_in_control.0.max_scaled_in_replicas'
              - 'autoscaling_policy.0.scale_in_control.0.time_window_sec'
      - name: 'cpuUtilization'
        type: NestedObject
        description: |
          Defines the CPU utilization policy that allows the autoscaler to
          scale based on the average CPU utilization of a managed instance
          group.
        default_from_api: true
        properties:
          - name: 'target'
            type: Double
            description: |
              The target CPU utilization that the autoscaler should maintain.
              Must be a float value in the range (0, 1]. If not specified, the
              default is 0.6.

              If the CPU level is below the target utilization, the autoscaler
              scales down the number of instances until it reaches the minimum
              number of instances you specified or until the average CPU of
              your instances reaches the target utilization.

              If the average CPU is above the target utilization, the autoscaler
              scales up until it reaches the maximum number of instances you
              specified or until the average utilization reaches the target
              utilization.
            api_name: utilizationTarget
            required: true
          - name: 'predictiveMethod'
            type: String
            description: |
              Indicates whether predictive autoscaling based on CPU metric is enabled. Valid values are:

              - NONE (default). No predictive method is used. The autoscaler scales the group to meet current demand based on real-time metrics.

              - OPTIMIZE_AVAILABILITY. Predictive autoscaling improves availability by monitoring daily and weekly load patterns and scaling out ahead of anticipated demand.
            custom_flatten: 'templates/terraform/custom_flatten/default_if_empty.tmpl'
            default_value: "NONE"
      - name: 'metric'
        type: Array
        description: |
          Configuration parameters of autoscaling based on a custom metric.
        api_name: customMetricUtilizations
        item_type:
          type: NestedObject
          properties:
            - name: 'name'
              type: String
              description: |
                The identifier (type) of the Stackdriver Monitoring metric.
                The metric cannot have negative values.

                The metric must have a value type of INT64 or DOUBLE.
              api_name: metric
              required: true
            - name: 'singleInstanceAssignment'
              type: Double
              description: |
                If scaling is based on a per-group metric value that represents the
                total amount of work to be done or resource usage, set this value to
                an amount assigned for a single instance of the scaled group.
                The autoscaler will keep the number of instances proportional to the
                value of this metric, the metric itself should not change value due
                to group resizing.

                For example, a good metric to use with the target is
                `pubsub.googleapis.com/subscription/num_undelivered_messages`
                or a custom metric exporting the total number of requests coming to
                your instances.

                A bad example would be a metric exporting an average or median
                latency, since this value can't include a chunk assignable to a
                single instance, it could be better used with utilization_target
                instead.
            - name: 'target'
              type: Double
              description: |
                The target value of the metric that autoscaler should
                maintain. This must be a positive value. A utilization
                metric scales number of virtual machines handling requests
                to increase or decrease proportionally to the metric.

                For example, a good metric to use as a utilizationTarget is
                www.googleapis.com/compute/instance/network/received_bytes_count.
                The autoscaler will work to keep this value constant for each
                of the instances.
              api_name: utilizationTarget
            - name: 'type'
              type: Enum
              description: |
                Defines how target utilization value is expressed for a
                Stackdriver Monitoring metric.
              api_name: utilizationTargetType
              enum_values:
                - 'GAUGE'
                - 'DELTA_PER_SECOND'
                - 'DELTA_PER_MINUTE'
            - name: 'filter'
              type: String
              description: |
                A filter string to be used as the filter string for
                a Stackdriver Monitoring TimeSeries.list API call.
                This filter is used to select a specific TimeSeries for
                the purpose of autoscaling and to determine whether the metric
                is exporting per-instance or per-group data.

                You can only use the AND operator for joining selectors.
                You can only use direct equality comparison operator (=) without
                any functions for each selector.
                You can specify the metric in both the filter string and in the
                metric field. However, if specified in both places, the metric must
                be identical.

                The monitored resource type determines what kind of values are
                expected for the metric. If it is a gce_instance, the autoscaler
                expects the metric to include a separate TimeSeries for each
                instance in a group. In such a case, you cannot filter on resource
                labels.

                If the resource type is any other value, the autoscaler expects
                this metric to contain values that apply to the entire autoscaled
                instance group and resource label filtering can be performed to
                point autoscaler at the correct TimeSeries to scale upon.
                This is called a per-group metric for the purpose of autoscaling.

                If not specified, the type defaults to gce_instance.

                You should provide a filter that is selective enough to pick just
                one TimeSeries for the autoscaled group or for each of the instances
                (if you are using gce_instance resource type). If multiple
                TimeSeries are returned upon the query execution, the autoscaler
                will sum their respective values to obtain its scaling value.
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -



mmv1/products/compute/RegionAutoscaler.yaml [145:341]:
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
        properties:
          - name: 'maxScaledDownReplicas'
            type: NestedObject
            at_least_one_of:
              - 'autoscaling_policy.0.scale_down_control.0.max_scaled_down_replicas'
              - 'autoscaling_policy.0.scale_down_control.0.time_window_sec'
            properties:
              - name: 'fixed'
                type: Integer
                description: |
                  Specifies a fixed number of VM instances. This must be a positive
                  integer.
                at_least_one_of:
                  - 'autoscaling_policy.0.scale_down_control.0.max_scaled_down_replicas.0.fixed'
                  - 'autoscaling_policy.0.scale_down_control.0.max_scaled_down_replicas.0.percent'
              - name: 'percent'
                type: Integer
                description: |
                  Specifies a percentage of instances between 0 to 100%, inclusive.
                  For example, specify 80 for 80%.
                at_least_one_of:
                  - 'autoscaling_policy.0.scale_down_control.0.max_scaled_down_replicas.0.fixed'
                  - 'autoscaling_policy.0.scale_down_control.0.max_scaled_down_replicas.0.percent'
          - name: 'timeWindowSec'
            type: Integer
            description: |
              How long back autoscaling should look when computing recommendations
              to include directives regarding slower scale down, as described above.
            at_least_one_of:
              - 'autoscaling_policy.0.scale_down_control.0.max_scaled_down_replicas'
              - 'autoscaling_policy.0.scale_down_control.0.time_window_sec'
      - name: 'scaleInControl'
        type: NestedObject
        description: |
          Defines scale in controls to reduce the risk of response latency
          and outages due to abrupt scale-in events
        properties:
          - name: 'maxScaledInReplicas'
            type: NestedObject
            at_least_one_of:
              - 'autoscaling_policy.0.scale_in_control.0.max_scaled_in_replicas'
              - 'autoscaling_policy.0.scale_in_control.0.time_window_sec'
            properties:
              - name: 'fixed'
                type: Integer
                description: |
                  Specifies a fixed number of VM instances. This must be a positive
                  integer.
                at_least_one_of:
                  - 'autoscaling_policy.0.scale_in_control.0.max_scaled_in_replicas.0.fixed'
                  - 'autoscaling_policy.0.scale_in_control.0.max_scaled_in_replicas.0.percent'
              - name: 'percent'
                type: Integer
                description: |
                  Specifies a percentage of instances between 0 to 100%, inclusive.
                  For example, specify 80 for 80%.
                at_least_one_of:
                  - 'autoscaling_policy.0.scale_in_control.0.max_scaled_in_replicas.0.fixed'
                  - 'autoscaling_policy.0.scale_in_control.0.max_scaled_in_replicas.0.percent'
          - name: 'timeWindowSec'
            type: Integer
            description: |
              How long back autoscaling should look when computing recommendations
              to include directives regarding slower scale down, as described above.
            at_least_one_of:
              - 'autoscaling_policy.0.scale_in_control.0.max_scaled_in_replicas'
              - 'autoscaling_policy.0.scale_in_control.0.time_window_sec'
      - name: 'cpuUtilization'
        type: NestedObject
        description: |
          Defines the CPU utilization policy that allows the autoscaler to
          scale based on the average CPU utilization of a managed instance
          group.
        default_from_api: true
        properties:
          - name: 'target'
            type: Double
            description: |
              The target CPU utilization that the autoscaler should maintain.
              Must be a float value in the range (0, 1]. If not specified, the
              default is 0.6.

              If the CPU level is below the target utilization, the autoscaler
              scales down the number of instances until it reaches the minimum
              number of instances you specified or until the average CPU of
              your instances reaches the target utilization.

              If the average CPU is above the target utilization, the autoscaler
              scales up until it reaches the maximum number of instances you
              specified or until the average utilization reaches the target
              utilization.
            api_name: utilizationTarget
            required: true
          - name: 'predictiveMethod'
            type: String
            description: |
              Indicates whether predictive autoscaling based on CPU metric is enabled. Valid values are:

              - NONE (default). No predictive method is used. The autoscaler scales the group to meet current demand based on real-time metrics.

              - OPTIMIZE_AVAILABILITY. Predictive autoscaling improves availability by monitoring daily and weekly load patterns and scaling out ahead of anticipated demand.
            custom_flatten: 'templates/terraform/custom_flatten/default_if_empty.tmpl'
            default_value: "NONE"
      - name: 'metric'
        type: Array
        description: |
          Configuration parameters of autoscaling based on a custom metric.
        api_name: customMetricUtilizations
        item_type:
          type: NestedObject
          properties:
            - name: 'name'
              type: String
              description: |
                The identifier (type) of the Stackdriver Monitoring metric.
                The metric cannot have negative values.

                The metric must have a value type of INT64 or DOUBLE.
              api_name: metric
              required: true
            - name: 'singleInstanceAssignment'
              type: Double
              description: |
                If scaling is based on a per-group metric value that represents the
                total amount of work to be done or resource usage, set this value to
                an amount assigned for a single instance of the scaled group.
                The autoscaler will keep the number of instances proportional to the
                value of this metric, the metric itself should not change value due
                to group resizing.

                For example, a good metric to use with the target is
                `pubsub.googleapis.com/subscription/num_undelivered_messages`
                or a custom metric exporting the total number of requests coming to
                your instances.

                A bad example would be a metric exporting an average or median
                latency, since this value can't include a chunk assignable to a
                single instance, it could be better used with utilization_target
                instead.
            - name: 'target'
              type: Double
              description: |
                The target value of the metric that autoscaler should
                maintain. This must be a positive value. A utilization
                metric scales number of virtual machines handling requests
                to increase or decrease proportionally to the metric.

                For example, a good metric to use as a utilizationTarget is
                www.googleapis.com/compute/instance/network/received_bytes_count.
                The autoscaler will work to keep this value constant for each
                of the instances.
              api_name: utilizationTarget
            - name: 'type'
              type: Enum
              description: |
                Defines how target utilization value is expressed for a
                Stackdriver Monitoring metric.
              api_name: utilizationTargetType
              enum_values:
                - 'GAUGE'
                - 'DELTA_PER_SECOND'
                - 'DELTA_PER_MINUTE'
            - name: 'filter'
              type: String
              description: |
                A filter string to be used as the filter string for
                a Stackdriver Monitoring TimeSeries.list API call.
                This filter is used to select a specific TimeSeries for
                the purpose of autoscaling and to determine whether the metric
                is exporting per-instance or per-group data.

                You can only use the AND operator for joining selectors.
                You can only use direct equality comparison operator (=) without
                any functions for each selector.
                You can specify the metric in both the filter string and in the
                metric field. However, if specified in both places, the metric must
                be identical.

                The monitored resource type determines what kind of values are
                expected for the metric. If it is a gce_instance, the autoscaler
                expects the metric to include a separate TimeSeries for each
                instance in a group. In such a case, you cannot filter on resource
                labels.

                If the resource type is any other value, the autoscaler expects
                this metric to contain values that apply to the entire autoscaled
                instance group and resource label filtering can be performed to
                point autoscaler at the correct TimeSeries to scale upon.
                This is called a per-group metric for the purpose of autoscaling.

                If not specified, the type defaults to gce_instance.

                You should provide a filter that is selective enough to pick just
                one TimeSeries for the autoscaled group or for each of the instances
                (if you are using gce_instance resource type). If multiple
                TimeSeries are returned upon the query execution, the autoscaler
                will sum their respective values to obtain its scaling value.
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -



