pub struct PolicyIntentResponse {
pub action_result: Option<PolicyIntentResponseActionResult>,
pub authorization_details: Vec<PolicyIntentResponseAuthorizationDetailsItem>,
pub created_at: f64,
pub created_by_display_name: String,
pub created_by_id: Option<String>,
pub current_resource_data: Option<PolicyIntentResponseCurrentResourceData>,
pub expires_at: f64,
pub intent_id: String,
pub intent_type: PolicyIntentResponseIntentType,
pub request_details: PolicyIntentResponseRequestDetails,
pub resource_id: String,
pub status: PolicyIntentResponseStatus,
}Expand description
Response for a policy update intent creation request
JSON schema
{
"description": "Response for a policy update intent creation request",
"type": "object",
"required": [
"authorization_details",
"created_at",
"created_by_display_name",
"expires_at",
"intent_id",
"intent_type",
"request_details",
"resource_id",
"status"
],
"properties": {
"action_result": {
"description": "Result of policy update execution (only present if
status is 'executed' or 'failed')",
"type": "object",
"required": [
"executed_at",
"prior_state",
"response_body",
"status_code"
],
"properties": {
"authorized_by_display_name": {
"description": "Display name of the key quorum that authorized
execution",
"type": "string"
},
"authorized_by_id": {
"description": "ID of the key quorum that authorized
execution",
"type": "string"
},
"executed_at": {
"description": "Unix timestamp when the action was executed",
"type": "number"
},
"prior_state": {
"description": "State of the policy immediately before
execution",
"type": "object",
"required": [
"chain_type",
"created_at",
"id",
"name",
"owner_id",
"rules",
"version"
],
"properties": {
"chain_type": {
"$ref": "#/components/schemas/PolicyChainType"
},
"created_at": {
"description": "Unix timestamp of when the policy was
created in milliseconds.",
"type": "number"
},
"id": {
"description": "Unique ID of the created policy. This will
be the primary identifier when using the policy in the future.",
"type": "string",
"maxLength": 24,
"minLength": 24
},
"name": {
"description": "Name to assign to policy.",
"type": "string",
"maxLength": 50,
"minLength": 1
},
"owner_id": {
"description": "The key quorum ID of the owner of the
policy.",
"type": [
"string",
"null"
]
},
"rules": {
"type": "array",
"items": {
"$ref": "#/components/schemas/PolicyRuleResponse"
}
},
"version": {
"description": "Version of the policy. Currently, 1.0 is
the only version.",
"type": "string",
"enum": [
"1.0"
]
}
}
},
"response_body": {
"type": "object",
"required": [
"chain_type",
"created_at",
"id",
"name",
"owner_id",
"rules",
"version"
],
"properties": {
"chain_type": {
"$ref": "#/components/schemas/PolicyChainType"
},
"created_at": {
"description": "Unix timestamp of when the policy was
created in milliseconds.",
"type": "number"
},
"id": {
"description": "Unique ID of the created policy. This will
be the primary identifier when using the policy in the future.",
"type": "string",
"maxLength": 24,
"minLength": 24
},
"name": {
"description": "Name to assign to policy.",
"type": "string",
"maxLength": 50,
"minLength": 1
},
"owner_id": {
"description": "The key quorum ID of the owner of the
policy.",
"type": [
"string",
"null"
]
},
"rules": {
"type": "array",
"items": {
"$ref": "#/components/schemas/PolicyRuleResponse"
}
},
"version": {
"description": "Version of the policy. Currently, 1.0 is
the only version.",
"type": "string",
"enum": [
"1.0"
]
}
}
},
"status_code": {
"description": "HTTP status code from the action execution",
"type": "number"
}
}
},
"authorization_details": {
"description": "Detailed authorization information including key
quorum members, thresholds, and signature status",
"type": "array",
"items": {
"type": "object",
"required": [
"members",
"threshold"
],
"properties": {
"display_name": {
"description": "Display name of the key quorum",
"type": "string"
},
"members": {
"description": "Members in this authorization quorum",
"type": "array",
"items": {
"oneOf": [
{
"title": "User member",
"type": "object",
"required": [
"has_signed",
"type",
"user_id"
],
"properties": {
"display_name": {
"description": "Display name for the user (email,
etc)",
"type": "string"
},
"has_signed": {
"description": "Whether this member has signed the
intent",
"type": "boolean"
},
"type": {
"type": "string",
"enum": [
"user"
]
},
"user_id": {
"description": "User ID of the key quorum member",
"type": "string"
}
}
},
{
"title": "Key member",
"type": "object",
"required": [
"has_signed",
"public_key",
"type"
],
"properties": {
"display_name": {
"description": "Display name for the key (if any)",
"type": "string"
},
"has_signed": {
"description": "Whether this key has signed the
intent",
"type": "boolean"
},
"public_key": {
"description": "Public key of the key quorum
member",
"type": "string"
},
"type": {
"type": "string",
"enum": [
"key"
]
}
}
}
]
}
},
"threshold": {
"description": "Number of signatures required from this
quorum",
"type": "number"
}
}
}
},
"created_at": {
"description": "Unix timestamp when the intent was created",
"type": "number"
},
"created_by_display_name": {
"description": "Display name of the user who created the intent",
"type": "string"
},
"created_by_id": {
"description": "ID of the user who created the intent. If
undefined, the intent was created using the app secret",
"type": "string"
},
"current_resource_data": {
"description": "Current state of the policy before any changes. If
undefined, the resource was deleted and no longer exists",
"type": "object",
"required": [
"chain_type",
"created_at",
"id",
"name",
"owner_id",
"rules",
"version"
],
"properties": {
"chain_type": {
"$ref": "#/components/schemas/PolicyChainType"
},
"created_at": {
"description": "Unix timestamp of when the policy was created
in milliseconds.",
"type": "number"
},
"id": {
"description": "Unique ID of the created policy. This will be
the primary identifier when using the policy in the future.",
"type": "string",
"maxLength": 24,
"minLength": 24
},
"name": {
"description": "Name to assign to policy.",
"type": "string",
"maxLength": 50,
"minLength": 1
},
"owner_id": {
"description": "The key quorum ID of the owner of the policy.",
"type": [
"string",
"null"
]
},
"rules": {
"type": "array",
"items": {
"$ref": "#/components/schemas/PolicyRuleResponse"
}
},
"version": {
"description": "Version of the policy. Currently, 1.0 is the
only version.",
"type": "string",
"enum": [
"1.0"
]
}
}
},
"expires_at": {
"description": "Unix timestamp when the intent expires",
"type": "number"
},
"intent_id": {
"description": "Unique ID for the intent",
"type": "string"
},
"intent_type": {
"type": "string",
"enum": [
"POLICY"
]
},
"request_details": {
"description": "The original policy update request that would be
sent to the policy endpoint",
"type": "object",
"required": [
"body",
"method",
"url"
],
"properties": {
"body": {
"type": "object",
"properties": {
"name": {
"description": "Name to assign to policy.",
"type": "string",
"maxLength": 50,
"minLength": 1
},
"owner": {
"$ref": "#/components/schemas/OwnerInput"
},
"owner_id": {
"allOf": [
{
"$ref": "#/components/schemas/OwnerIdInput"
},
{}
]
},
"rules": {
"type": "array",
"items": {
"$ref": "#/components/schemas/PolicyRuleRequestBody"
}
}
}
},
"method": {
"type": "string",
"enum": [
"PATCH"
]
},
"url": {
"type": "string"
}
}
},
"resource_id": {
"description": "ID of the resource being modified (wallet_id,
policy_id, etc)",
"type": "string"
},
"status": {
"description": "Current status of the intent",
"type": "string",
"enum": [
"executed",
"expired",
"failed",
"pending",
"rejected"
]
}
}
}Fields§
§action_result: Option<PolicyIntentResponseActionResult>Detailed authorization information including key quorum members, thresholds, and signature status
created_at: f64§created_by_display_name: StringDisplay name of the user who created the intent
created_by_id: Option<String>ID of the user who created the intent. If undefined, the intent was created using the app secret
current_resource_data: Option<PolicyIntentResponseCurrentResourceData>§expires_at: f64§intent_id: StringUnique ID for the intent
intent_type: PolicyIntentResponseIntentType§request_details: PolicyIntentResponseRequestDetails§resource_id: StringID of the resource being modified (wallet_id, policy_id, etc)
status: PolicyIntentResponseStatusCurrent status of the intent
Trait Implementations§
Source§impl Clone for PolicyIntentResponse
impl Clone for PolicyIntentResponse
Source§fn clone(&self) -> PolicyIntentResponse
fn clone(&self) -> PolicyIntentResponse
Returns a duplicate of the value. Read more
1.0.0 · Source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
Performs copy-assignment from
source. Read moreSource§impl Debug for PolicyIntentResponse
impl Debug for PolicyIntentResponse
Source§impl<'de> Deserialize<'de> for PolicyIntentResponse
impl<'de> Deserialize<'de> for PolicyIntentResponse
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>,
Deserialize this value from the given Serde deserializer. Read more
Source§impl From<&PolicyIntentResponse> for PolicyIntentResponse
impl From<&PolicyIntentResponse> for PolicyIntentResponse
Source§fn from(value: &PolicyIntentResponse) -> Self
fn from(value: &PolicyIntentResponse) -> Self
Converts to this type from the input type.
Source§impl From<PolicyIntentResponse> for IntentResponse
impl From<PolicyIntentResponse> for IntentResponse
Source§fn from(value: PolicyIntentResponse) -> Self
fn from(value: PolicyIntentResponse) -> Self
Converts to this type from the input type.
Auto Trait Implementations§
impl Freeze for PolicyIntentResponse
impl RefUnwindSafe for PolicyIntentResponse
impl Send for PolicyIntentResponse
impl Sync for PolicyIntentResponse
impl Unpin for PolicyIntentResponse
impl UnsafeUnpin for PolicyIntentResponse
impl UnwindSafe for PolicyIntentResponse
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
Mutably borrows from an owned value. Read more