# encoding: utf-8 # Code generated by Microsoft (R) AutoRest Code Generator. # Changes may cause incorrect behavior and will be lost if the code is # regenerated. module Azure::ServiceFabric::Mgmt::V2017_07_01_preview module Models # # The properties of a stateful service resource. # class StatefulServiceProperties < ServiceProperties include MsRestAzure def initialize @serviceKind = "Stateful" end attr_accessor :serviceKind # @return [Boolean] A flag indicating whether this is a persistent # service which stores states on the local disk. If it is then the value # of this property is true, if not it is false. attr_accessor :has_persisted_state # @return [Integer] The target replica set size as a number. attr_accessor :target_replica_set_size # @return [Integer] The minimum replica set size as a number. attr_accessor :min_replica_set_size # @return [DateTime] The duration between when a replica goes down and # when a new replica is created, represented in ISO 8601 format # (hh:mm:ss.s). attr_accessor :replica_restart_wait_duration # @return [DateTime] The maximum duration for which a partition is # allowed to be in a state of quorum loss, represented in ISO 8601 format # (hh:mm:ss.s). attr_accessor :quorum_loss_wait_duration # @return [DateTime] The definition on how long StandBy replicas should # be maintained before being removed, represented in ISO 8601 format # (hh:mm:ss.s). attr_accessor :stand_by_replica_keep_duration # # Mapper for StatefulServiceProperties class as Ruby Hash. # This will be used for serialization/deserialization. # def self.mapper() { client_side_validation: true, required: false, serialized_name: 'Stateful', type: { name: 'Composite', class_name: 'StatefulServiceProperties', model_properties: { 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' } }, provisioning_state: { client_side_validation: true, required: false, read_only: true, serialized_name: 'provisioningState', type: { name: 'String' } }, service_type_name: { client_side_validation: true, required: false, serialized_name: 'serviceTypeName', type: { name: 'String' } }, partition_description: { client_side_validation: true, required: false, serialized_name: 'partitionDescription', type: { name: 'Composite', polymorphic_discriminator: 'PartitionScheme', uber_parent: 'PartitionSchemeDescription', class_name: 'PartitionSchemeDescription' } }, serviceKind: { client_side_validation: true, required: true, serialized_name: 'serviceKind', type: { name: 'String' } }, has_persisted_state: { client_side_validation: true, required: false, serialized_name: 'hasPersistedState', type: { name: 'Boolean' } }, target_replica_set_size: { client_side_validation: true, required: false, serialized_name: 'targetReplicaSetSize', constraints: { InclusiveMinimum: 1 }, type: { name: 'Number' } }, min_replica_set_size: { client_side_validation: true, required: false, serialized_name: 'minReplicaSetSize', constraints: { InclusiveMinimum: 1 }, type: { name: 'Number' } }, replica_restart_wait_duration: { client_side_validation: true, required: false, serialized_name: 'replicaRestartWaitDuration', type: { name: 'DateTime' } }, quorum_loss_wait_duration: { client_side_validation: true, required: false, serialized_name: 'quorumLossWaitDuration', type: { name: 'DateTime' } }, stand_by_replica_keep_duration: { client_side_validation: true, required: false, serialized_name: 'standByReplicaKeepDuration', type: { name: 'DateTime' } } } } } end end end end