Struct google_api_proto::google::cloud::recommender::v1::Operation
source · pub struct Operation {
pub action: String,
pub resource_type: String,
pub resource: String,
pub path: String,
pub source_resource: String,
pub source_path: String,
pub path_filters: BTreeMap<String, Value>,
pub path_value_matchers: BTreeMap<String, ValueMatcher>,
pub path_value: Option<PathValue>,
}
Expand description
Contains an operation for a resource loosely based on the JSON-PATCH format with support for:
- Custom filters for describing partial array patch.
- Extended path values for describing nested arrays.
- Custom fields for describing the resource for which the operation is being described.
- Allows extension to custom operations not natively supported by RFC6902. See https://tools.ietf.org/html/rfc6902 for details on the original RFC.
Fields§
§action: String
Type of this operation. Contains one of ‘add’, ‘remove’, ‘replace’, ‘move’, ‘copy’, ‘test’ and custom operations. This field is case-insensitive and always populated.
resource_type: String
Type of GCP resource being modified/tested. This field is always populated. Example: cloudresourcemanager.googleapis.com/Project, compute.googleapis.com/Instance
resource: String
Contains the fully qualified resource name. This field is always populated. ex: //cloudresourcemanager.googleapis.com/projects/foo.
path: String
Path to the target field being operated on. If the operation is at the resource level, then path should be “/”. This field is always populated.
source_resource: String
Can be set with action ‘copy’ to copy resource configuration across different resources of the same type. Example: A resource clone can be done via action = ‘copy’, path = “/”, from = “/”, source_resource =
source_path: String
Can be set with action ‘copy’ or ‘move’ to indicate the source field within resource or source_resource, ignored if provided for other operation types.
path_filters: BTreeMap<String, Value>
Set of filters to apply if path
refers to array elements or nested array
elements in order to narrow down to a single unique element that is being
tested/modified.
This is intended to be an exact match per filter. To perform advanced
matching, use path_value_matchers.
- Example:
{
"/versions/*/name" : "it-123"
"/versions/*/targetSize/percent": 20
}
- Example:
{
"/bindings/*/role": "roles/owner"
"/bindings/*/condition" : null
}
- Example:
{
"/bindings/*/role": "roles/owner"
"/bindings/*/members/*" : \["x@example.com", "y@example.com"\]
}
When both path_filters and path_value_matchers are set, an implicit AND must be performed.
path_value_matchers: BTreeMap<String, ValueMatcher>
Similar to path_filters, this contains set of filters to apply if path
field refers to array elements. This is meant to support value matching
beyond exact match. To perform exact match, use path_filters.
When both path_filters and path_value_matchers are set, an implicit AND
must be performed.
path_value: Option<PathValue>
One of the fields in the following block will be set and intend to describe a value for ‘path’ field.
Trait Implementations§
source§impl Message for Operation
impl Message for Operation
source§fn encoded_len(&self) -> usize
fn encoded_len(&self) -> usize
source§fn encode(&self, buf: &mut impl BufMut) -> Result<(), EncodeError>where
Self: Sized,
fn encode(&self, buf: &mut impl BufMut) -> Result<(), EncodeError>where
Self: Sized,
source§fn encode_to_vec(&self) -> Vec<u8>where
Self: Sized,
fn encode_to_vec(&self) -> Vec<u8>where
Self: Sized,
source§fn encode_length_delimited(
&self,
buf: &mut impl BufMut,
) -> Result<(), EncodeError>where
Self: Sized,
fn encode_length_delimited(
&self,
buf: &mut impl BufMut,
) -> Result<(), EncodeError>where
Self: Sized,
source§fn encode_length_delimited_to_vec(&self) -> Vec<u8>where
Self: Sized,
fn encode_length_delimited_to_vec(&self) -> Vec<u8>where
Self: Sized,
source§fn decode(buf: impl Buf) -> Result<Self, DecodeError>where
Self: Default,
fn decode(buf: impl Buf) -> Result<Self, DecodeError>where
Self: Default,
source§fn decode_length_delimited(buf: impl Buf) -> Result<Self, DecodeError>where
Self: Default,
fn decode_length_delimited(buf: impl Buf) -> Result<Self, DecodeError>where
Self: Default,
source§fn merge(&mut self, buf: impl Buf) -> Result<(), DecodeError>where
Self: Sized,
fn merge(&mut self, buf: impl Buf) -> Result<(), DecodeError>where
Self: Sized,
self
. Read moresource§fn merge_length_delimited(&mut self, buf: impl Buf) -> Result<(), DecodeError>where
Self: Sized,
fn merge_length_delimited(&mut self, buf: impl Buf) -> Result<(), DecodeError>where
Self: Sized,
self
.source§impl PartialEq for Operation
impl PartialEq for Operation
impl StructuralPartialEq for Operation
Auto Trait Implementations§
impl Freeze for Operation
impl RefUnwindSafe for Operation
impl Send for Operation
impl Sync for Operation
impl Unpin for Operation
impl UnwindSafe for Operation
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
§impl<T> Instrument for T
impl<T> Instrument for T
§fn instrument(self, span: Span) -> Instrumented<Self>
fn instrument(self, span: Span) -> Instrumented<Self>
§fn in_current_span(self) -> Instrumented<Self>
fn in_current_span(self) -> Instrumented<Self>
source§impl<T> IntoRequest<T> for T
impl<T> IntoRequest<T> for T
source§fn into_request(self) -> Request<T>
fn into_request(self) -> Request<T>
T
in a tonic::Request