class Azure::ServiceFabric::V7_0_0_42::Models::StatelessServiceDescription

Describes a stateless service.

Attributes

ServiceKind[RW]
flags[RW]

@return [Integer] Flags indicating whether other properties are set. Each of the associated properties corresponds to a flag, specified below, which, if set, indicate that the property is specified. This property can be a combination of those flags obtained using bitwise 'OR' operator. For example, if the provided value is 1 then the flags for InstanceCloseDelayDuration is set.

  • None - Does not indicate any other properties are set. The value is

zero.

  • InstanceCloseDelayDuration - Indicates the InstanceCloseDelayDuration

property is set. The value is 1.

instance_close_delay_duration_seconds[RW]

@return [Integer] Duration in seconds, to wait before a stateless instance is closed, to allow the active requests to drain gracefully. This would be effective when the instance is closing during the application/cluster upgrade and disabling node. The endpoint exposed on this instance is removed prior to starting the delay, which prevents new connections to this instance. In addition, clients that have subscribed to service endpoint change events(docs.microsoft.com/en-us/dotnet/api/system.fabric.fabricclient.servicemanagementclient.registerservicenotificationfilterasync), can do the following upon receiving the endpoint removal notification:

  • Stop sending new requests to this instance.

  • Close existing connections after in-flight requests have completed.

  • Connect to a different instance of the service partition for future

requests. Note, the default value of InstanceCloseDelayDuration is 0, which indicates that there won't be any delay or removal of the endpoint prior to closing the instance.

instance_count[RW]

@return [Integer] The instance count.

min_instance_count[RW]

@return [Integer] MinInstanceCount is the minimum number of instances that must be up to meet the EnsureAvailability safety check during operations like upgrade or deactivate node. The actual number that is used is max( MinInstanceCount, ceil( MinInstancePercentage/100.0 * InstanceCount) ). Note, if InstanceCount is set to -1, during MinInstanceCount computation -1 is first converted into the number of nodes on which the instances are allowed to be placed according to the placement constraints on the service.

min_instance_percentage[RW]

@return [Integer] MinInstancePercentage is the minimum percentage of InstanceCount that must be up to meet the EnsureAvailability safety check during operations like upgrade or deactivate node. The actual number that is used is max( MinInstanceCount, ceil( MinInstancePercentage/100.0 * InstanceCount) ). Note, if InstanceCount is set to -1, during MinInstancePercentage computation, -1 is first converted into the number of nodes on which the instances are allowed to be placed according to the placement constraints on the service.

Private Class Methods

mapper() click to toggle source

Mapper for StatelessServiceDescription class as Ruby Hash. This will be used for serialization/deserialization.

# File lib/7.0.0.42/generated/azure_service_fabric/models/stateless_service_description.rb, line 85
def self.mapper()
  {
    client_side_validation: true,
    required: false,
    serialized_name: 'Stateless',
    type: {
      name: 'Composite',
      class_name: 'StatelessServiceDescription',
      model_properties: {
        application_name: {
          client_side_validation: true,
          required: false,
          serialized_name: 'ApplicationName',
          type: {
            name: 'String'
          }
        },
        service_name: {
          client_side_validation: true,
          required: true,
          serialized_name: 'ServiceName',
          type: {
            name: 'String'
          }
        },
        service_type_name: {
          client_side_validation: true,
          required: true,
          serialized_name: 'ServiceTypeName',
          type: {
            name: 'String'
          }
        },
        initialization_data: {
          client_side_validation: true,
          required: false,
          serialized_name: 'InitializationData',
          type: {
            name: 'Sequence',
            element: {
                client_side_validation: true,
                required: false,
                serialized_name: 'NumberElementType',
                type: {
                  name: 'Number'
                }
            }
          }
        },
        partition_description: {
          client_side_validation: true,
          required: true,
          serialized_name: 'PartitionDescription',
          type: {
            name: 'Composite',
            polymorphic_discriminator: 'PartitionScheme',
            uber_parent: 'PartitionSchemeDescription',
            class_name: 'PartitionSchemeDescription'
          }
        },
        placement_constraints: {
          client_side_validation: true,
          required: false,
          serialized_name: 'PlacementConstraints',
          type: {
            name: 'String'
          }
        },
        correlation_scheme: {
          client_side_validation: true,
          required: false,
          serialized_name: 'CorrelationScheme',
          type: {
            name: 'Sequence',
            element: {
                client_side_validation: true,
                required: false,
                serialized_name: 'ServiceCorrelationDescriptionElementType',
                type: {
                  name: 'Composite',
                  class_name: 'ServiceCorrelationDescription'
                }
            }
          }
        },
        service_load_metrics: {
          client_side_validation: true,
          required: false,
          serialized_name: 'ServiceLoadMetrics',
          type: {
            name: 'Sequence',
            element: {
                client_side_validation: true,
                required: false,
                serialized_name: 'ServiceLoadMetricDescriptionElementType',
                type: {
                  name: 'Composite',
                  class_name: 'ServiceLoadMetricDescription'
                }
            }
          }
        },
        service_placement_policies: {
          client_side_validation: true,
          required: false,
          serialized_name: 'ServicePlacementPolicies',
          type: {
            name: 'Sequence',
            element: {
                client_side_validation: true,
                required: false,
                serialized_name: 'ServicePlacementPolicyDescriptionElementType',
                type: {
                  name: 'Composite',
                  polymorphic_discriminator: 'Type',
                  uber_parent: 'ServicePlacementPolicyDescription',
                  class_name: 'ServicePlacementPolicyDescription'
                }
            }
          }
        },
        default_move_cost: {
          client_side_validation: true,
          required: false,
          serialized_name: 'DefaultMoveCost',
          type: {
            name: 'String'
          }
        },
        is_default_move_cost_specified: {
          client_side_validation: true,
          required: false,
          serialized_name: 'IsDefaultMoveCostSpecified',
          type: {
            name: 'Boolean'
          }
        },
        service_package_activation_mode: {
          client_side_validation: true,
          required: false,
          serialized_name: 'ServicePackageActivationMode',
          type: {
            name: 'String'
          }
        },
        service_dns_name: {
          client_side_validation: true,
          required: false,
          serialized_name: 'ServiceDnsName',
          type: {
            name: 'String'
          }
        },
        scaling_policies: {
          client_side_validation: true,
          required: false,
          serialized_name: 'ScalingPolicies',
          type: {
            name: 'Sequence',
            element: {
                client_side_validation: true,
                required: false,
                serialized_name: 'ScalingPolicyDescriptionElementType',
                type: {
                  name: 'Composite',
                  class_name: 'ScalingPolicyDescription'
                }
            }
          }
        },
        ServiceKind: {
          client_side_validation: true,
          required: true,
          serialized_name: 'ServiceKind',
          type: {
            name: 'String'
          }
        },
        instance_count: {
          client_side_validation: true,
          required: true,
          serialized_name: 'InstanceCount',
          constraints: {
            InclusiveMinimum: -1
          },
          type: {
            name: 'Number'
          }
        },
        min_instance_count: {
          client_side_validation: true,
          required: false,
          serialized_name: 'MinInstanceCount',
          type: {
            name: 'Number'
          }
        },
        min_instance_percentage: {
          client_side_validation: true,
          required: false,
          serialized_name: 'MinInstancePercentage',
          type: {
            name: 'Number'
          }
        },
        flags: {
          client_side_validation: true,
          required: false,
          serialized_name: 'Flags',
          type: {
            name: 'Number'
          }
        },
        instance_close_delay_duration_seconds: {
          client_side_validation: true,
          required: false,
          serialized_name: 'InstanceCloseDelayDurationSeconds',
          constraints: {
            InclusiveMaximum: 4294967295,
            InclusiveMinimum: 0
          },
          type: {
            name: 'Number'
          }
        }
      }
    }
  }
end
new() click to toggle source
# File lib/7.0.0.42/generated/azure_service_fabric/models/stateless_service_description.rb, line 16
def initialize
  @ServiceKind = "Stateless"
end