pub struct Service {Show 16 fields
pub abort_timeout: Option<u64>,
pub documentation: Option<String>,
pub enable_lazy_state: Option<bool>,
pub handlers: Vec<Handler>,
pub idempotency_retention: Option<u64>,
pub inactivity_timeout: Option<u64>,
pub ingress_private: Option<bool>,
pub journal_retention: Option<u64>,
pub metadata: HashMap<String, String>,
pub name: ServiceName,
pub retry_policy_exponentiation_factor: Option<f64>,
pub retry_policy_initial_interval: Option<u64>,
pub retry_policy_max_attempts: Option<u64>,
pub retry_policy_max_interval: Option<u64>,
pub retry_policy_on_max_attempts: Option<RetryPolicyOnMaxAttempts>,
pub ty: ServiceType,
}
Expand description
Service
JSON schema
{
"title": "Service",
"type": "object",
"required": [
"handlers",
"name",
"ty"
],
"properties": {
"abortTimeout": {
"description": "Abort timeout duration, expressed in milliseconds.",
"type": "integer",
"minimum": 0.0
},
"documentation": {
"description": "Documentation for this service definition. No format is enforced, but generally Markdown is assumed.",
"type": "string"
},
"enableLazyState": {
"description": "If true, lazy state is enabled.",
"type": "boolean"
},
"handlers": {
"type": "array",
"items": {
"title": "Handler",
"type": "object",
"required": [
"name"
],
"properties": {
"abortTimeout": {
"description": "Abort timeout duration, expressed in milliseconds.",
"type": "integer",
"minimum": 0.0
},
"documentation": {
"description": "Documentation for this handler definition. No format is enforced, but generally Markdown is assumed.",
"type": "string"
},
"enableLazyState": {
"description": "If true, lazy state is enabled.",
"type": "boolean"
},
"idempotencyRetention": {
"description": "Idempotency retention duration, expressed in milliseconds. This is NOT VALID when HandlerType == WORKFLOW",
"type": "integer",
"minimum": 0.0
},
"inactivityTimeout": {
"description": "Inactivity timeout duration, expressed in milliseconds.",
"type": "integer",
"minimum": 0.0
},
"ingressPrivate": {
"description": "If true, the service cannot be invoked from the HTTP nor Kafka ingress.",
"type": "boolean"
},
"input": {
"title": "InputPayload",
"description": "Description of an input payload. This will be used by Restate to validate incoming requests.",
"type": "object",
"properties": {
"contentType": {
"description": "Content type of the input. It can accept wildcards, in the same format as the 'Accept' header. When this field is unset, it implies emptiness, meaning no content-type/body is expected.",
"type": "string"
},
"jsonSchema": {},
"required": {
"description": "If true, a body MUST be sent with a content-type, even if the body length is zero.",
"type": "boolean"
}
},
"additionalProperties": false
},
"journalRetention": {
"description": "Journal retention duration, expressed in milliseconds.",
"type": "integer",
"minimum": 0.0
},
"metadata": {
"description": "Custom metadata of this handler definition. This metadata is shown on the Admin API when querying the service/handler definition.",
"type": "object",
"additionalProperties": {
"type": "string"
}
},
"name": {
"type": "string",
"pattern": "^([a-zA-Z]|_[a-zA-Z0-9])[a-zA-Z0-9_]*$"
},
"output": {
"title": "OutputPayload",
"description": "Description of an output payload.",
"type": "object",
"properties": {
"contentType": {
"description": "Content type set on output. This will be used by Restate to set the output content type at the ingress.",
"type": "string"
},
"jsonSchema": {},
"setContentTypeIfEmpty": {
"description": "If true, the specified content-type is set even if the output is empty.",
"type": "boolean"
}
},
"additionalProperties": false
},
"retryPolicyExponentiationFactor": {
"description": "Retry policy exponentiation factor.",
"type": "number"
},
"retryPolicyInitialInterval": {
"description": "Retry policy initial interval, expressed in milliseconds.",
"type": "integer",
"minimum": 0.0
},
"retryPolicyMaxAttempts": {
"description": "Retry policy max attempts.",
"type": "integer",
"minimum": 0.0
},
"retryPolicyMaxInterval": {
"description": "Retry policy max interval, expressed in milliseconds.",
"type": "integer",
"minimum": 0.0
},
"retryPolicyOnMaxAttempts": {
"title": "RetryPolicyOnMaxAttempts",
"description": "Retry policy behavior on max attempts.",
"enum": [
"PAUSE",
"KILL"
]
},
"ty": {
"title": "HandlerType",
"description": "If unspecified, defaults to EXCLUSIVE for Virtual Object or WORKFLOW for Workflows. This should be unset for Services.",
"enum": [
"WORKFLOW",
"EXCLUSIVE",
"SHARED"
]
},
"workflowCompletionRetention": {
"description": "Workflow completion retention duration, expressed in milliseconds. This is valid ONLY when HandlerType == WORKFLOW",
"type": "integer",
"minimum": 0.0
}
},
"additionalProperties": false
}
},
"idempotencyRetention": {
"description": "Idempotency retention duration, expressed in milliseconds. When ServiceType == WORKFLOW, this option will be applied only to the shared handlers. See workflowCompletionRetention for more details.",
"type": "integer",
"minimum": 0.0
},
"inactivityTimeout": {
"description": "Inactivity timeout duration, expressed in milliseconds.",
"type": "integer",
"minimum": 0.0
},
"ingressPrivate": {
"description": "If true, the service cannot be invoked from the HTTP nor Kafka ingress.",
"type": "boolean"
},
"journalRetention": {
"description": "Journal retention duration, expressed in milliseconds.",
"type": "integer",
"minimum": 0.0
},
"metadata": {
"description": "Custom metadata of this service definition. This metadata is shown on the Admin API when querying the service definition.",
"type": "object",
"additionalProperties": {
"type": "string"
}
},
"name": {
"type": "string",
"pattern": "^([a-zA-Z]|_[a-zA-Z0-9])[a-zA-Z0-9._-]*$"
},
"retryPolicyExponentiationFactor": {
"description": "Retry policy exponentiation factor.",
"type": "number"
},
"retryPolicyInitialInterval": {
"description": "Retry policy initial interval, expressed in milliseconds.",
"type": "integer",
"minimum": 0.0
},
"retryPolicyMaxAttempts": {
"description": "Retry policy max attempts.",
"type": "integer",
"minimum": 0.0
},
"retryPolicyMaxInterval": {
"description": "Retry policy max interval, expressed in milliseconds.",
"type": "integer",
"minimum": 0.0
},
"retryPolicyOnMaxAttempts": {
"title": "RetryPolicyOnMaxAttempts",
"description": "Retry policy behavior on max attempts.",
"enum": [
"PAUSE",
"KILL"
]
},
"ty": {
"title": "ServiceType",
"enum": [
"VIRTUAL_OBJECT",
"SERVICE",
"WORKFLOW"
]
}
},
"additionalProperties": false
}
Fields§
§abort_timeout: Option<u64>
Abort timeout duration, expressed in milliseconds.
documentation: Option<String>
Documentation for this service definition. No format is enforced, but generally Markdown is assumed.
enable_lazy_state: Option<bool>
If true, lazy state is enabled.
handlers: Vec<Handler>
§idempotency_retention: Option<u64>
Idempotency retention duration, expressed in milliseconds. When ServiceType == WORKFLOW, this option will be applied only to the shared handlers. See workflowCompletionRetention for more details.
inactivity_timeout: Option<u64>
Inactivity timeout duration, expressed in milliseconds.
ingress_private: Option<bool>
If true, the service cannot be invoked from the HTTP nor Kafka ingress.
journal_retention: Option<u64>
Journal retention duration, expressed in milliseconds.
metadata: HashMap<String, String>
Custom metadata of this service definition. This metadata is shown on the Admin API when querying the service definition.
name: ServiceName
§retry_policy_exponentiation_factor: Option<f64>
§retry_policy_initial_interval: Option<u64>
Retry policy initial interval, expressed in milliseconds.
retry_policy_max_attempts: Option<u64>
Retry policy max attempts.
retry_policy_max_interval: Option<u64>
Retry policy max interval, expressed in milliseconds.
retry_policy_on_max_attempts: Option<RetryPolicyOnMaxAttempts>
Retry policy behavior on max attempts.
ty: ServiceType
Trait Implementations§
Source§impl<'de> Deserialize<'de> for Service
impl<'de> Deserialize<'de> for Service
Source§fn deserialize<__D>(__deserializer: __D) -> Result<Self, __D::Error>where
__D: Deserializer<'de>,
fn deserialize<__D>(__deserializer: __D) -> Result<Self, __D::Error>where
__D: Deserializer<'de>,
Auto Trait Implementations§
impl Freeze for Service
impl RefUnwindSafe for Service
impl Send for Service
impl Sync for Service
impl Unpin for Service
impl UnwindSafe for Service
Blanket Implementations§
Source§impl<T> BorrowMut<T> for Twhere
T: ?Sized,
impl<T> BorrowMut<T> for Twhere
T: ?Sized,
Source§fn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
Source§impl<T> CloneToUninit for Twhere
T: Clone,
impl<T> CloneToUninit for Twhere
T: Clone,
Source§impl<T> Instrument for T
impl<T> Instrument for T
Source§fn instrument(self, span: Span) -> Instrumented<Self>
fn instrument(self, span: Span) -> Instrumented<Self>
Source§fn in_current_span(self) -> Instrumented<Self>
fn in_current_span(self) -> Instrumented<Self>
Source§impl<T> IntoEither for T
impl<T> IntoEither for T
Source§fn into_either(self, into_left: bool) -> Either<Self, Self>
fn into_either(self, into_left: bool) -> Either<Self, Self>
self
into a Left
variant of Either<Self, Self>
if into_left
is true
.
Converts self
into a Right
variant of Either<Self, Self>
otherwise. Read moreSource§fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
self
into a Left
variant of Either<Self, Self>
if into_left(&self)
returns true
.
Converts self
into a Right
variant of Either<Self, Self>
otherwise. Read more