App Lifecycle Manager API . projects . locations . flagRevisions

Instance Methods

close()

Close httplib2 connections.

create(parent, body=None, flagRevisionId=None, requestId=None, validateOnly=None, x__xgafv=None)

Create a new flag revision.

delete(name, etag=None, requestId=None, validateOnly=None, x__xgafv=None)

Delete a single flag revision.

get(name, x__xgafv=None)

Retrieve a single flag revision.

list(parent, filter=None, orderBy=None, pageSize=None, pageToken=None, x__xgafv=None)

Retrieve a collection of flag revisions.

list_next()

Retrieves the next page of results.

patch(name, body=None, requestId=None, updateMask=None, validateOnly=None, x__xgafv=None)

Update a single flag revision.

Method Details

close()
Close httplib2 connections.
create(parent, body=None, flagRevisionId=None, requestId=None, validateOnly=None, x__xgafv=None)
Create a new flag revision.

Args:
  parent: string, Required. The parent of the flag revision. (required)
  body: object, The request body.
    The object takes the form of:

{ # A snapshot of the EvaluationSpec for the Flag.
  "annotations": { # Optional. Annotations is an unstructured key-value map stored with a resource that may be set by external tools to store and retrieve arbitrary metadata. They are not queryable and should be preserved when modifying objects. More info: https://kubernetes.io/docs/user-guide/annotations
    "a_key": "A String",
  },
  "createTime": "A String", # Output only. The timestamp when the resource was created.
  "etag": "A String", # Output only. An opaque value that uniquely identifies a version or generation of a resource. It can be used to confirm that the client and server agree on the ordering of a resource being written.
  "evaluationSpec": { # EvaluationSpec holds rules for evaluating the value of a flag. # Output only. Immutable. Snapshot of the EvaluationSpec for the flag. DEPRECATED: Use snapshot instead.
    "allocations": [ # Optional. A list of allocations.
      { # Allocation defines a set of weighted flag variants, specifying how traffic is split based on the randomization unit.
        "description": "A String", # Optional. Description of the allocation. Max length: 500 bytes.
        "id": "A String", # Required. Allocation ID. Max length: 128 bytes.
        "randomizedOn": "A String", # Required. Key of the context attribute that is used for traffic splitting.
        "slots": [ # Required. Slots defines the weighted distribution of variants.
          { # AllocationSlot specifies a variant and the proportion of traffic allocated to it.
            "variant": "A String", # Required. Variant of the allocation slot.
            "weight": 42, # Required. Weight defines the proportion of traffic to allocate to the variant, relative to other slots in the same allocation.
          },
        ],
      },
    ],
    "attributes": [ # Optional. Names of the context attributes that are used in the evaluation rules and allocations.
      "A String",
    ],
    "defaultTarget": "A String", # Required. Default variant or allocation of the flag.
    "rules": [ # Optional. Evaluation rules define the logic for evaluating the flag against a given context. The rules are evaluated sequentially in their specified order.
      { # EvaluationRule defines a single rule for evaluating a feature flag. A rule consists of a condition that, if met, assigns a specific variant or allocation to the user.
        "condition": "A String", # Required. A Common Expression Language (CEL) expression that evaluates to a boolean. The expression is evaluated against the provided context. If it returns true, the rule's target is applied.
        "id": "A String", # Required. Evaluation rule ID. Max length: 128 bytes.
        "target": "A String", # Required. The target variant or allocation to apply if the condition is met. This should match the name of a defined variant or allocation's ID.
      },
    ],
    "variants": [ # Optional. A list of variants.
      { # Variant is an identifier for a value (name assigned to a value). DEPRECATED: Use Flag.Variants instead.
        "boolValue": True or False, # Optional. Boolean flag value.
        "doubleValue": 3.14, # Optional. Double flag value.
        "intValue": "A String", # Optional. Integer flag value.
        "name": "A String", # Required. Name of the variant. Max length: 128 bytes.
        "stringValue": "A String", # Optional. String flag value.
      },
    ],
  },
  "flag": "A String", # Required. Immutable. Name of the Flag this is a revision of.
  "labels": { # Optional. The labels on the resource, which can be used for categorization. similar to Kubernetes resource labels.
    "a_key": "A String",
  },
  "name": "A String", # Identifier. The resource name (full URI of the resource) following the standard naming scheme: "projects/{project}/locations/{location}/flagRevisions/{flag_revision_id}"
  "snapshot": { # Represents a single Flag. # Output only. Immutable. Snapshot of the Flag.
    "annotations": { # Optional. Annotations is an unstructured key-value map stored with a resource that may be set by external tools to store and retrieve arbitrary metadata. They are not queryable and should be preserved when modifying objects. More info: https://kubernetes.io/docs/user-guide/annotations
      "a_key": "A String",
    },
    "createTime": "A String", # Output only. The timestamp when the resource was created.
    "description": "A String", # Optional. Description of the flag. Max length: 500 bytes.
    "etag": "A String", # Output only. An opaque value that uniquely identifies a version or generation of a resource. It can be used to confirm that the client and server agree on the ordering of a resource being written.
    "evaluationSpec": { # EvaluationSpec holds rules for evaluating the value of a flag. # Optional. Specification of how the flag value should be evaluated. If a bool flag is created without an evaluation_spec specified, two default variants, "Enabled" (with bool_value = true) and "Disabled" (with bool_value = false), are created by default, and "Disabled" is set as the default_target.
      "allocations": [ # Optional. A list of allocations.
        { # Allocation defines a set of weighted flag variants, specifying how traffic is split based on the randomization unit.
          "description": "A String", # Optional. Description of the allocation. Max length: 500 bytes.
          "id": "A String", # Required. Allocation ID. Max length: 128 bytes.
          "randomizedOn": "A String", # Required. Key of the context attribute that is used for traffic splitting.
          "slots": [ # Required. Slots defines the weighted distribution of variants.
            { # AllocationSlot specifies a variant and the proportion of traffic allocated to it.
              "variant": "A String", # Required. Variant of the allocation slot.
              "weight": 42, # Required. Weight defines the proportion of traffic to allocate to the variant, relative to other slots in the same allocation.
            },
          ],
        },
      ],
      "attributes": [ # Optional. Names of the context attributes that are used in the evaluation rules and allocations.
        "A String",
      ],
      "defaultTarget": "A String", # Required. Default variant or allocation of the flag.
      "rules": [ # Optional. Evaluation rules define the logic for evaluating the flag against a given context. The rules are evaluated sequentially in their specified order.
        { # EvaluationRule defines a single rule for evaluating a feature flag. A rule consists of a condition that, if met, assigns a specific variant or allocation to the user.
          "condition": "A String", # Required. A Common Expression Language (CEL) expression that evaluates to a boolean. The expression is evaluated against the provided context. If it returns true, the rule's target is applied.
          "id": "A String", # Required. Evaluation rule ID. Max length: 128 bytes.
          "target": "A String", # Required. The target variant or allocation to apply if the condition is met. This should match the name of a defined variant or allocation's ID.
        },
      ],
      "variants": [ # Optional. A list of variants.
        { # Variant is an identifier for a value (name assigned to a value). DEPRECATED: Use Flag.Variants instead.
          "boolValue": True or False, # Optional. Boolean flag value.
          "doubleValue": 3.14, # Optional. Double flag value.
          "intValue": "A String", # Optional. Integer flag value.
          "name": "A String", # Required. Name of the variant. Max length: 128 bytes.
          "stringValue": "A String", # Optional. String flag value.
        },
      ],
    },
    "flagSet": "A String", # Optional. Flag set this flag belongs to.
    "flagValueType": "A String", # Optional. Immutable. Flag value type.
    "key": "A String", # Required. Immutable. Flag key used in runtime evaluation APIs (OpenFeature). Max length: 256 bytes.
    "labels": { # Optional. The labels on the resource, which can be used for categorization. similar to Kubernetes resource labels.
      "a_key": "A String",
    },
    "name": "A String", # Identifier. The resource name (full URI of the resource) following the standard naming scheme: "projects/{project}/locations/{location}/flags/{flag_id}"
    "state": "A String", # Optional. Current state of the flag.
    "uid": "A String", # Output only. The unique identifier of the resource. UID is unique in the time and space for this resource within the scope of the service. It is typically generated by the server on successful creation of a resource and must not be changed. UID is used to uniquely identify resources with resource name reuses. This should be a UUID4.
    "unitKind": "A String", # Required. Immutable. UnitKind that can consume this flag.
    "updateTime": "A String", # Output only. The timestamp when the resource was last updated. Any change to the resource made by users must refresh this value. Changes to a resource made by the service should refresh this value.
    "valueType": "A String", # Optional. Immutable. Deprecated: Use `flag_value_type` instead. Flag value type.
    "variants": [ # Optional. A list of variants.
      { # Variant is an identifier for a value (name assigned to a value).
        "booleanValue": True or False, # Optional. Boolean variant value.
        "description": "A String", # Optional. A human-readable description of what this variant does or represents.
        "doubleValue": 3.14, # Optional. Double variant value.
        "id": "A String", # Required. Variant ID. Max length: 128 bytes.
        "integerValue": "A String", # Optional. Integer variant value.
        "stringValue": "A String", # Optional. String variant value.
        "trackingId": "A String", # Optional. trackingId is unique depending on name and value of the variant within the scope of the service. It is typically generated by the server and must not be changed. trackingId is used to uniquely identify and track variants.
      },
    ],
  },
  "uid": "A String", # Output only. The unique identifier of the resource. UID is unique in the time and space for this resource within the scope of the service. It is typically generated by the server on successful creation of a resource and must not be changed. UID is used to uniquely identify resources with resource name reuses. This should be a UUID4.
  "updateTime": "A String", # Output only. The timestamp when the resource was last updated. Any change to the resource made by users must refresh this value. Changes to a resource made by the service should refresh this value.
}

  flagRevisionId: string, Required. The ID value for the new flag revision.
  requestId: string, An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed. The server will guarantee that for at least 60 minutes since the first request. For example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments. The request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).
  validateOnly: boolean, If "validate_only" is set to true, the service will try to validate that this request would succeed, but will not actually make changes.
  x__xgafv: string, V1 error format.
    Allowed values
      1 - v1 error format
      2 - v2 error format

Returns:
  An object of the form:

    { # A snapshot of the EvaluationSpec for the Flag.
  "annotations": { # Optional. Annotations is an unstructured key-value map stored with a resource that may be set by external tools to store and retrieve arbitrary metadata. They are not queryable and should be preserved when modifying objects. More info: https://kubernetes.io/docs/user-guide/annotations
    "a_key": "A String",
  },
  "createTime": "A String", # Output only. The timestamp when the resource was created.
  "etag": "A String", # Output only. An opaque value that uniquely identifies a version or generation of a resource. It can be used to confirm that the client and server agree on the ordering of a resource being written.
  "evaluationSpec": { # EvaluationSpec holds rules for evaluating the value of a flag. # Output only. Immutable. Snapshot of the EvaluationSpec for the flag. DEPRECATED: Use snapshot instead.
    "allocations": [ # Optional. A list of allocations.
      { # Allocation defines a set of weighted flag variants, specifying how traffic is split based on the randomization unit.
        "description": "A String", # Optional. Description of the allocation. Max length: 500 bytes.
        "id": "A String", # Required. Allocation ID. Max length: 128 bytes.
        "randomizedOn": "A String", # Required. Key of the context attribute that is used for traffic splitting.
        "slots": [ # Required. Slots defines the weighted distribution of variants.
          { # AllocationSlot specifies a variant and the proportion of traffic allocated to it.
            "variant": "A String", # Required. Variant of the allocation slot.
            "weight": 42, # Required. Weight defines the proportion of traffic to allocate to the variant, relative to other slots in the same allocation.
          },
        ],
      },
    ],
    "attributes": [ # Optional. Names of the context attributes that are used in the evaluation rules and allocations.
      "A String",
    ],
    "defaultTarget": "A String", # Required. Default variant or allocation of the flag.
    "rules": [ # Optional. Evaluation rules define the logic for evaluating the flag against a given context. The rules are evaluated sequentially in their specified order.
      { # EvaluationRule defines a single rule for evaluating a feature flag. A rule consists of a condition that, if met, assigns a specific variant or allocation to the user.
        "condition": "A String", # Required. A Common Expression Language (CEL) expression that evaluates to a boolean. The expression is evaluated against the provided context. If it returns true, the rule's target is applied.
        "id": "A String", # Required. Evaluation rule ID. Max length: 128 bytes.
        "target": "A String", # Required. The target variant or allocation to apply if the condition is met. This should match the name of a defined variant or allocation's ID.
      },
    ],
    "variants": [ # Optional. A list of variants.
      { # Variant is an identifier for a value (name assigned to a value). DEPRECATED: Use Flag.Variants instead.
        "boolValue": True or False, # Optional. Boolean flag value.
        "doubleValue": 3.14, # Optional. Double flag value.
        "intValue": "A String", # Optional. Integer flag value.
        "name": "A String", # Required. Name of the variant. Max length: 128 bytes.
        "stringValue": "A String", # Optional. String flag value.
      },
    ],
  },
  "flag": "A String", # Required. Immutable. Name of the Flag this is a revision of.
  "labels": { # Optional. The labels on the resource, which can be used for categorization. similar to Kubernetes resource labels.
    "a_key": "A String",
  },
  "name": "A String", # Identifier. The resource name (full URI of the resource) following the standard naming scheme: "projects/{project}/locations/{location}/flagRevisions/{flag_revision_id}"
  "snapshot": { # Represents a single Flag. # Output only. Immutable. Snapshot of the Flag.
    "annotations": { # Optional. Annotations is an unstructured key-value map stored with a resource that may be set by external tools to store and retrieve arbitrary metadata. They are not queryable and should be preserved when modifying objects. More info: https://kubernetes.io/docs/user-guide/annotations
      "a_key": "A String",
    },
    "createTime": "A String", # Output only. The timestamp when the resource was created.
    "description": "A String", # Optional. Description of the flag. Max length: 500 bytes.
    "etag": "A String", # Output only. An opaque value that uniquely identifies a version or generation of a resource. It can be used to confirm that the client and server agree on the ordering of a resource being written.
    "evaluationSpec": { # EvaluationSpec holds rules for evaluating the value of a flag. # Optional. Specification of how the flag value should be evaluated. If a bool flag is created without an evaluation_spec specified, two default variants, "Enabled" (with bool_value = true) and "Disabled" (with bool_value = false), are created by default, and "Disabled" is set as the default_target.
      "allocations": [ # Optional. A list of allocations.
        { # Allocation defines a set of weighted flag variants, specifying how traffic is split based on the randomization unit.
          "description": "A String", # Optional. Description of the allocation. Max length: 500 bytes.
          "id": "A String", # Required. Allocation ID. Max length: 128 bytes.
          "randomizedOn": "A String", # Required. Key of the context attribute that is used for traffic splitting.
          "slots": [ # Required. Slots defines the weighted distribution of variants.
            { # AllocationSlot specifies a variant and the proportion of traffic allocated to it.
              "variant": "A String", # Required. Variant of the allocation slot.
              "weight": 42, # Required. Weight defines the proportion of traffic to allocate to the variant, relative to other slots in the same allocation.
            },
          ],
        },
      ],
      "attributes": [ # Optional. Names of the context attributes that are used in the evaluation rules and allocations.
        "A String",
      ],
      "defaultTarget": "A String", # Required. Default variant or allocation of the flag.
      "rules": [ # Optional. Evaluation rules define the logic for evaluating the flag against a given context. The rules are evaluated sequentially in their specified order.
        { # EvaluationRule defines a single rule for evaluating a feature flag. A rule consists of a condition that, if met, assigns a specific variant or allocation to the user.
          "condition": "A String", # Required. A Common Expression Language (CEL) expression that evaluates to a boolean. The expression is evaluated against the provided context. If it returns true, the rule's target is applied.
          "id": "A String", # Required. Evaluation rule ID. Max length: 128 bytes.
          "target": "A String", # Required. The target variant or allocation to apply if the condition is met. This should match the name of a defined variant or allocation's ID.
        },
      ],
      "variants": [ # Optional. A list of variants.
        { # Variant is an identifier for a value (name assigned to a value). DEPRECATED: Use Flag.Variants instead.
          "boolValue": True or False, # Optional. Boolean flag value.
          "doubleValue": 3.14, # Optional. Double flag value.
          "intValue": "A String", # Optional. Integer flag value.
          "name": "A String", # Required. Name of the variant. Max length: 128 bytes.
          "stringValue": "A String", # Optional. String flag value.
        },
      ],
    },
    "flagSet": "A String", # Optional. Flag set this flag belongs to.
    "flagValueType": "A String", # Optional. Immutable. Flag value type.
    "key": "A String", # Required. Immutable. Flag key used in runtime evaluation APIs (OpenFeature). Max length: 256 bytes.
    "labels": { # Optional. The labels on the resource, which can be used for categorization. similar to Kubernetes resource labels.
      "a_key": "A String",
    },
    "name": "A String", # Identifier. The resource name (full URI of the resource) following the standard naming scheme: "projects/{project}/locations/{location}/flags/{flag_id}"
    "state": "A String", # Optional. Current state of the flag.
    "uid": "A String", # Output only. The unique identifier of the resource. UID is unique in the time and space for this resource within the scope of the service. It is typically generated by the server on successful creation of a resource and must not be changed. UID is used to uniquely identify resources with resource name reuses. This should be a UUID4.
    "unitKind": "A String", # Required. Immutable. UnitKind that can consume this flag.
    "updateTime": "A String", # Output only. The timestamp when the resource was last updated. Any change to the resource made by users must refresh this value. Changes to a resource made by the service should refresh this value.
    "valueType": "A String", # Optional. Immutable. Deprecated: Use `flag_value_type` instead. Flag value type.
    "variants": [ # Optional. A list of variants.
      { # Variant is an identifier for a value (name assigned to a value).
        "booleanValue": True or False, # Optional. Boolean variant value.
        "description": "A String", # Optional. A human-readable description of what this variant does or represents.
        "doubleValue": 3.14, # Optional. Double variant value.
        "id": "A String", # Required. Variant ID. Max length: 128 bytes.
        "integerValue": "A String", # Optional. Integer variant value.
        "stringValue": "A String", # Optional. String variant value.
        "trackingId": "A String", # Optional. trackingId is unique depending on name and value of the variant within the scope of the service. It is typically generated by the server and must not be changed. trackingId is used to uniquely identify and track variants.
      },
    ],
  },
  "uid": "A String", # Output only. The unique identifier of the resource. UID is unique in the time and space for this resource within the scope of the service. It is typically generated by the server on successful creation of a resource and must not be changed. UID is used to uniquely identify resources with resource name reuses. This should be a UUID4.
  "updateTime": "A String", # Output only. The timestamp when the resource was last updated. Any change to the resource made by users must refresh this value. Changes to a resource made by the service should refresh this value.
}
delete(name, etag=None, requestId=None, validateOnly=None, x__xgafv=None)
Delete a single flag revision.

Args:
  name: string, Required. The resource name of the resource within a service. (required)
  etag: string, The etag known to the client for the expected state of the flag revision. This is used with state-changing methods to prevent accidental overwrites when multiple user agents might be acting in parallel on the same resource. An etag wildcard provide optimistic concurrency based on the expected existence of the flag revision. The Any wildcard (`*`) requires that the resource must already exists, and the Not Any wildcard (`!*`) requires that it must not.
  requestId: string, An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed. The server will guarantee that for at least 60 minutes since the first request. For example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments. The request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).
  validateOnly: boolean, If "validate_only" is set to true, the service will try to validate that this request would succeed, but will not actually make changes.
  x__xgafv: string, V1 error format.
    Allowed values
      1 - v1 error format
      2 - v2 error format

Returns:
  An object of the form:

    { # A generic empty message that you can re-use to avoid defining duplicated empty messages in your APIs. A typical example is to use it as the request or the response type of an API method. For instance: service Foo { rpc Bar(google.protobuf.Empty) returns (google.protobuf.Empty); }
}
get(name, x__xgafv=None)
Retrieve a single flag revision.

Args:
  name: string, Required. The resource name of the resource within a service. (required)
  x__xgafv: string, V1 error format.
    Allowed values
      1 - v1 error format
      2 - v2 error format

Returns:
  An object of the form:

    { # A snapshot of the EvaluationSpec for the Flag.
  "annotations": { # Optional. Annotations is an unstructured key-value map stored with a resource that may be set by external tools to store and retrieve arbitrary metadata. They are not queryable and should be preserved when modifying objects. More info: https://kubernetes.io/docs/user-guide/annotations
    "a_key": "A String",
  },
  "createTime": "A String", # Output only. The timestamp when the resource was created.
  "etag": "A String", # Output only. An opaque value that uniquely identifies a version or generation of a resource. It can be used to confirm that the client and server agree on the ordering of a resource being written.
  "evaluationSpec": { # EvaluationSpec holds rules for evaluating the value of a flag. # Output only. Immutable. Snapshot of the EvaluationSpec for the flag. DEPRECATED: Use snapshot instead.
    "allocations": [ # Optional. A list of allocations.
      { # Allocation defines a set of weighted flag variants, specifying how traffic is split based on the randomization unit.
        "description": "A String", # Optional. Description of the allocation. Max length: 500 bytes.
        "id": "A String", # Required. Allocation ID. Max length: 128 bytes.
        "randomizedOn": "A String", # Required. Key of the context attribute that is used for traffic splitting.
        "slots": [ # Required. Slots defines the weighted distribution of variants.
          { # AllocationSlot specifies a variant and the proportion of traffic allocated to it.
            "variant": "A String", # Required. Variant of the allocation slot.
            "weight": 42, # Required. Weight defines the proportion of traffic to allocate to the variant, relative to other slots in the same allocation.
          },
        ],
      },
    ],
    "attributes": [ # Optional. Names of the context attributes that are used in the evaluation rules and allocations.
      "A String",
    ],
    "defaultTarget": "A String", # Required. Default variant or allocation of the flag.
    "rules": [ # Optional. Evaluation rules define the logic for evaluating the flag against a given context. The rules are evaluated sequentially in their specified order.
      { # EvaluationRule defines a single rule for evaluating a feature flag. A rule consists of a condition that, if met, assigns a specific variant or allocation to the user.
        "condition": "A String", # Required. A Common Expression Language (CEL) expression that evaluates to a boolean. The expression is evaluated against the provided context. If it returns true, the rule's target is applied.
        "id": "A String", # Required. Evaluation rule ID. Max length: 128 bytes.
        "target": "A String", # Required. The target variant or allocation to apply if the condition is met. This should match the name of a defined variant or allocation's ID.
      },
    ],
    "variants": [ # Optional. A list of variants.
      { # Variant is an identifier for a value (name assigned to a value). DEPRECATED: Use Flag.Variants instead.
        "boolValue": True or False, # Optional. Boolean flag value.
        "doubleValue": 3.14, # Optional. Double flag value.
        "intValue": "A String", # Optional. Integer flag value.
        "name": "A String", # Required. Name of the variant. Max length: 128 bytes.
        "stringValue": "A String", # Optional. String flag value.
      },
    ],
  },
  "flag": "A String", # Required. Immutable. Name of the Flag this is a revision of.
  "labels": { # Optional. The labels on the resource, which can be used for categorization. similar to Kubernetes resource labels.
    "a_key": "A String",
  },
  "name": "A String", # Identifier. The resource name (full URI of the resource) following the standard naming scheme: "projects/{project}/locations/{location}/flagRevisions/{flag_revision_id}"
  "snapshot": { # Represents a single Flag. # Output only. Immutable. Snapshot of the Flag.
    "annotations": { # Optional. Annotations is an unstructured key-value map stored with a resource that may be set by external tools to store and retrieve arbitrary metadata. They are not queryable and should be preserved when modifying objects. More info: https://kubernetes.io/docs/user-guide/annotations
      "a_key": "A String",
    },
    "createTime": "A String", # Output only. The timestamp when the resource was created.
    "description": "A String", # Optional. Description of the flag. Max length: 500 bytes.
    "etag": "A String", # Output only. An opaque value that uniquely identifies a version or generation of a resource. It can be used to confirm that the client and server agree on the ordering of a resource being written.
    "evaluationSpec": { # EvaluationSpec holds rules for evaluating the value of a flag. # Optional. Specification of how the flag value should be evaluated. If a bool flag is created without an evaluation_spec specified, two default variants, "Enabled" (with bool_value = true) and "Disabled" (with bool_value = false), are created by default, and "Disabled" is set as the default_target.
      "allocations": [ # Optional. A list of allocations.
        { # Allocation defines a set of weighted flag variants, specifying how traffic is split based on the randomization unit.
          "description": "A String", # Optional. Description of the allocation. Max length: 500 bytes.
          "id": "A String", # Required. Allocation ID. Max length: 128 bytes.
          "randomizedOn": "A String", # Required. Key of the context attribute that is used for traffic splitting.
          "slots": [ # Required. Slots defines the weighted distribution of variants.
            { # AllocationSlot specifies a variant and the proportion of traffic allocated to it.
              "variant": "A String", # Required. Variant of the allocation slot.
              "weight": 42, # Required. Weight defines the proportion of traffic to allocate to the variant, relative to other slots in the same allocation.
            },
          ],
        },
      ],
      "attributes": [ # Optional. Names of the context attributes that are used in the evaluation rules and allocations.
        "A String",
      ],
      "defaultTarget": "A String", # Required. Default variant or allocation of the flag.
      "rules": [ # Optional. Evaluation rules define the logic for evaluating the flag against a given context. The rules are evaluated sequentially in their specified order.
        { # EvaluationRule defines a single rule for evaluating a feature flag. A rule consists of a condition that, if met, assigns a specific variant or allocation to the user.
          "condition": "A String", # Required. A Common Expression Language (CEL) expression that evaluates to a boolean. The expression is evaluated against the provided context. If it returns true, the rule's target is applied.
          "id": "A String", # Required. Evaluation rule ID. Max length: 128 bytes.
          "target": "A String", # Required. The target variant or allocation to apply if the condition is met. This should match the name of a defined variant or allocation's ID.
        },
      ],
      "variants": [ # Optional. A list of variants.
        { # Variant is an identifier for a value (name assigned to a value). DEPRECATED: Use Flag.Variants instead.
          "boolValue": True or False, # Optional. Boolean flag value.
          "doubleValue": 3.14, # Optional. Double flag value.
          "intValue": "A String", # Optional. Integer flag value.
          "name": "A String", # Required. Name of the variant. Max length: 128 bytes.
          "stringValue": "A String", # Optional. String flag value.
        },
      ],
    },
    "flagSet": "A String", # Optional. Flag set this flag belongs to.
    "flagValueType": "A String", # Optional. Immutable. Flag value type.
    "key": "A String", # Required. Immutable. Flag key used in runtime evaluation APIs (OpenFeature). Max length: 256 bytes.
    "labels": { # Optional. The labels on the resource, which can be used for categorization. similar to Kubernetes resource labels.
      "a_key": "A String",
    },
    "name": "A String", # Identifier. The resource name (full URI of the resource) following the standard naming scheme: "projects/{project}/locations/{location}/flags/{flag_id}"
    "state": "A String", # Optional. Current state of the flag.
    "uid": "A String", # Output only. The unique identifier of the resource. UID is unique in the time and space for this resource within the scope of the service. It is typically generated by the server on successful creation of a resource and must not be changed. UID is used to uniquely identify resources with resource name reuses. This should be a UUID4.
    "unitKind": "A String", # Required. Immutable. UnitKind that can consume this flag.
    "updateTime": "A String", # Output only. The timestamp when the resource was last updated. Any change to the resource made by users must refresh this value. Changes to a resource made by the service should refresh this value.
    "valueType": "A String", # Optional. Immutable. Deprecated: Use `flag_value_type` instead. Flag value type.
    "variants": [ # Optional. A list of variants.
      { # Variant is an identifier for a value (name assigned to a value).
        "booleanValue": True or False, # Optional. Boolean variant value.
        "description": "A String", # Optional. A human-readable description of what this variant does or represents.
        "doubleValue": 3.14, # Optional. Double variant value.
        "id": "A String", # Required. Variant ID. Max length: 128 bytes.
        "integerValue": "A String", # Optional. Integer variant value.
        "stringValue": "A String", # Optional. String variant value.
        "trackingId": "A String", # Optional. trackingId is unique depending on name and value of the variant within the scope of the service. It is typically generated by the server and must not be changed. trackingId is used to uniquely identify and track variants.
      },
    ],
  },
  "uid": "A String", # Output only. The unique identifier of the resource. UID is unique in the time and space for this resource within the scope of the service. It is typically generated by the server on successful creation of a resource and must not be changed. UID is used to uniquely identify resources with resource name reuses. This should be a UUID4.
  "updateTime": "A String", # Output only. The timestamp when the resource was last updated. Any change to the resource made by users must refresh this value. Changes to a resource made by the service should refresh this value.
}
list(parent, filter=None, orderBy=None, pageSize=None, pageToken=None, x__xgafv=None)
Retrieve a collection of flag revisions.

Args:
  parent: string, Required. The parent of the flag revision. (required)
  filter: string, Filter the list as specified in https://google.aip.dev/160.
  orderBy: string, Order results as specified in https://google.aip.dev/132.
  pageSize: integer, The maximum number of flag revisions to send per page.
  pageToken: string, The page token: If the next_page_token from a previous response is provided, this request will send the subsequent page.
  x__xgafv: string, V1 error format.
    Allowed values
      1 - v1 error format
      2 - v2 error format

Returns:
  An object of the form:

    { # The response structure for the ListFlagRevisions method.
  "flagRevisions": [ # The resulting flag revisions.
    { # A snapshot of the EvaluationSpec for the Flag.
      "annotations": { # Optional. Annotations is an unstructured key-value map stored with a resource that may be set by external tools to store and retrieve arbitrary metadata. They are not queryable and should be preserved when modifying objects. More info: https://kubernetes.io/docs/user-guide/annotations
        "a_key": "A String",
      },
      "createTime": "A String", # Output only. The timestamp when the resource was created.
      "etag": "A String", # Output only. An opaque value that uniquely identifies a version or generation of a resource. It can be used to confirm that the client and server agree on the ordering of a resource being written.
      "evaluationSpec": { # EvaluationSpec holds rules for evaluating the value of a flag. # Output only. Immutable. Snapshot of the EvaluationSpec for the flag. DEPRECATED: Use snapshot instead.
        "allocations": [ # Optional. A list of allocations.
          { # Allocation defines a set of weighted flag variants, specifying how traffic is split based on the randomization unit.
            "description": "A String", # Optional. Description of the allocation. Max length: 500 bytes.
            "id": "A String", # Required. Allocation ID. Max length: 128 bytes.
            "randomizedOn": "A String", # Required. Key of the context attribute that is used for traffic splitting.
            "slots": [ # Required. Slots defines the weighted distribution of variants.
              { # AllocationSlot specifies a variant and the proportion of traffic allocated to it.
                "variant": "A String", # Required. Variant of the allocation slot.
                "weight": 42, # Required. Weight defines the proportion of traffic to allocate to the variant, relative to other slots in the same allocation.
              },
            ],
          },
        ],
        "attributes": [ # Optional. Names of the context attributes that are used in the evaluation rules and allocations.
          "A String",
        ],
        "defaultTarget": "A String", # Required. Default variant or allocation of the flag.
        "rules": [ # Optional. Evaluation rules define the logic for evaluating the flag against a given context. The rules are evaluated sequentially in their specified order.
          { # EvaluationRule defines a single rule for evaluating a feature flag. A rule consists of a condition that, if met, assigns a specific variant or allocation to the user.
            "condition": "A String", # Required. A Common Expression Language (CEL) expression that evaluates to a boolean. The expression is evaluated against the provided context. If it returns true, the rule's target is applied.
            "id": "A String", # Required. Evaluation rule ID. Max length: 128 bytes.
            "target": "A String", # Required. The target variant or allocation to apply if the condition is met. This should match the name of a defined variant or allocation's ID.
          },
        ],
        "variants": [ # Optional. A list of variants.
          { # Variant is an identifier for a value (name assigned to a value). DEPRECATED: Use Flag.Variants instead.
            "boolValue": True or False, # Optional. Boolean flag value.
            "doubleValue": 3.14, # Optional. Double flag value.
            "intValue": "A String", # Optional. Integer flag value.
            "name": "A String", # Required. Name of the variant. Max length: 128 bytes.
            "stringValue": "A String", # Optional. String flag value.
          },
        ],
      },
      "flag": "A String", # Required. Immutable. Name of the Flag this is a revision of.
      "labels": { # Optional. The labels on the resource, which can be used for categorization. similar to Kubernetes resource labels.
        "a_key": "A String",
      },
      "name": "A String", # Identifier. The resource name (full URI of the resource) following the standard naming scheme: "projects/{project}/locations/{location}/flagRevisions/{flag_revision_id}"
      "snapshot": { # Represents a single Flag. # Output only. Immutable. Snapshot of the Flag.
        "annotations": { # Optional. Annotations is an unstructured key-value map stored with a resource that may be set by external tools to store and retrieve arbitrary metadata. They are not queryable and should be preserved when modifying objects. More info: https://kubernetes.io/docs/user-guide/annotations
          "a_key": "A String",
        },
        "createTime": "A String", # Output only. The timestamp when the resource was created.
        "description": "A String", # Optional. Description of the flag. Max length: 500 bytes.
        "etag": "A String", # Output only. An opaque value that uniquely identifies a version or generation of a resource. It can be used to confirm that the client and server agree on the ordering of a resource being written.
        "evaluationSpec": { # EvaluationSpec holds rules for evaluating the value of a flag. # Optional. Specification of how the flag value should be evaluated. If a bool flag is created without an evaluation_spec specified, two default variants, "Enabled" (with bool_value = true) and "Disabled" (with bool_value = false), are created by default, and "Disabled" is set as the default_target.
          "allocations": [ # Optional. A list of allocations.
            { # Allocation defines a set of weighted flag variants, specifying how traffic is split based on the randomization unit.
              "description": "A String", # Optional. Description of the allocation. Max length: 500 bytes.
              "id": "A String", # Required. Allocation ID. Max length: 128 bytes.
              "randomizedOn": "A String", # Required. Key of the context attribute that is used for traffic splitting.
              "slots": [ # Required. Slots defines the weighted distribution of variants.
                { # AllocationSlot specifies a variant and the proportion of traffic allocated to it.
                  "variant": "A String", # Required. Variant of the allocation slot.
                  "weight": 42, # Required. Weight defines the proportion of traffic to allocate to the variant, relative to other slots in the same allocation.
                },
              ],
            },
          ],
          "attributes": [ # Optional. Names of the context attributes that are used in the evaluation rules and allocations.
            "A String",
          ],
          "defaultTarget": "A String", # Required. Default variant or allocation of the flag.
          "rules": [ # Optional. Evaluation rules define the logic for evaluating the flag against a given context. The rules are evaluated sequentially in their specified order.
            { # EvaluationRule defines a single rule for evaluating a feature flag. A rule consists of a condition that, if met, assigns a specific variant or allocation to the user.
              "condition": "A String", # Required. A Common Expression Language (CEL) expression that evaluates to a boolean. The expression is evaluated against the provided context. If it returns true, the rule's target is applied.
              "id": "A String", # Required. Evaluation rule ID. Max length: 128 bytes.
              "target": "A String", # Required. The target variant or allocation to apply if the condition is met. This should match the name of a defined variant or allocation's ID.
            },
          ],
          "variants": [ # Optional. A list of variants.
            { # Variant is an identifier for a value (name assigned to a value). DEPRECATED: Use Flag.Variants instead.
              "boolValue": True or False, # Optional. Boolean flag value.
              "doubleValue": 3.14, # Optional. Double flag value.
              "intValue": "A String", # Optional. Integer flag value.
              "name": "A String", # Required. Name of the variant. Max length: 128 bytes.
              "stringValue": "A String", # Optional. String flag value.
            },
          ],
        },
        "flagSet": "A String", # Optional. Flag set this flag belongs to.
        "flagValueType": "A String", # Optional. Immutable. Flag value type.
        "key": "A String", # Required. Immutable. Flag key used in runtime evaluation APIs (OpenFeature). Max length: 256 bytes.
        "labels": { # Optional. The labels on the resource, which can be used for categorization. similar to Kubernetes resource labels.
          "a_key": "A String",
        },
        "name": "A String", # Identifier. The resource name (full URI of the resource) following the standard naming scheme: "projects/{project}/locations/{location}/flags/{flag_id}"
        "state": "A String", # Optional. Current state of the flag.
        "uid": "A String", # Output only. The unique identifier of the resource. UID is unique in the time and space for this resource within the scope of the service. It is typically generated by the server on successful creation of a resource and must not be changed. UID is used to uniquely identify resources with resource name reuses. This should be a UUID4.
        "unitKind": "A String", # Required. Immutable. UnitKind that can consume this flag.
        "updateTime": "A String", # Output only. The timestamp when the resource was last updated. Any change to the resource made by users must refresh this value. Changes to a resource made by the service should refresh this value.
        "valueType": "A String", # Optional. Immutable. Deprecated: Use `flag_value_type` instead. Flag value type.
        "variants": [ # Optional. A list of variants.
          { # Variant is an identifier for a value (name assigned to a value).
            "booleanValue": True or False, # Optional. Boolean variant value.
            "description": "A String", # Optional. A human-readable description of what this variant does or represents.
            "doubleValue": 3.14, # Optional. Double variant value.
            "id": "A String", # Required. Variant ID. Max length: 128 bytes.
            "integerValue": "A String", # Optional. Integer variant value.
            "stringValue": "A String", # Optional. String variant value.
            "trackingId": "A String", # Optional. trackingId is unique depending on name and value of the variant within the scope of the service. It is typically generated by the server and must not be changed. trackingId is used to uniquely identify and track variants.
          },
        ],
      },
      "uid": "A String", # Output only. The unique identifier of the resource. UID is unique in the time and space for this resource within the scope of the service. It is typically generated by the server on successful creation of a resource and must not be changed. UID is used to uniquely identify resources with resource name reuses. This should be a UUID4.
      "updateTime": "A String", # Output only. The timestamp when the resource was last updated. Any change to the resource made by users must refresh this value. Changes to a resource made by the service should refresh this value.
    },
  ],
  "nextPageToken": "A String", # If present, the next page token can be provided to a subsequent ListFlagRevisions call to list the next page. If empty, there are no more pages.
  "unreachable": [ # Locations that could not be reached.
    "A String",
  ],
}
list_next()
Retrieves the next page of results.

        Args:
          previous_request: The request for the previous page. (required)
          previous_response: The response from the request for the previous page. (required)

        Returns:
          A request object that you can call 'execute()' on to request the next
          page. Returns None if there are no more items in the collection.
        
patch(name, body=None, requestId=None, updateMask=None, validateOnly=None, x__xgafv=None)
Update a single flag revision.

Args:
  name: string, Identifier. The resource name (full URI of the resource) following the standard naming scheme: "projects/{project}/locations/{location}/flagRevisions/{flag_revision_id}" (required)
  body: object, The request body.
    The object takes the form of:

{ # A snapshot of the EvaluationSpec for the Flag.
  "annotations": { # Optional. Annotations is an unstructured key-value map stored with a resource that may be set by external tools to store and retrieve arbitrary metadata. They are not queryable and should be preserved when modifying objects. More info: https://kubernetes.io/docs/user-guide/annotations
    "a_key": "A String",
  },
  "createTime": "A String", # Output only. The timestamp when the resource was created.
  "etag": "A String", # Output only. An opaque value that uniquely identifies a version or generation of a resource. It can be used to confirm that the client and server agree on the ordering of a resource being written.
  "evaluationSpec": { # EvaluationSpec holds rules for evaluating the value of a flag. # Output only. Immutable. Snapshot of the EvaluationSpec for the flag. DEPRECATED: Use snapshot instead.
    "allocations": [ # Optional. A list of allocations.
      { # Allocation defines a set of weighted flag variants, specifying how traffic is split based on the randomization unit.
        "description": "A String", # Optional. Description of the allocation. Max length: 500 bytes.
        "id": "A String", # Required. Allocation ID. Max length: 128 bytes.
        "randomizedOn": "A String", # Required. Key of the context attribute that is used for traffic splitting.
        "slots": [ # Required. Slots defines the weighted distribution of variants.
          { # AllocationSlot specifies a variant and the proportion of traffic allocated to it.
            "variant": "A String", # Required. Variant of the allocation slot.
            "weight": 42, # Required. Weight defines the proportion of traffic to allocate to the variant, relative to other slots in the same allocation.
          },
        ],
      },
    ],
    "attributes": [ # Optional. Names of the context attributes that are used in the evaluation rules and allocations.
      "A String",
    ],
    "defaultTarget": "A String", # Required. Default variant or allocation of the flag.
    "rules": [ # Optional. Evaluation rules define the logic for evaluating the flag against a given context. The rules are evaluated sequentially in their specified order.
      { # EvaluationRule defines a single rule for evaluating a feature flag. A rule consists of a condition that, if met, assigns a specific variant or allocation to the user.
        "condition": "A String", # Required. A Common Expression Language (CEL) expression that evaluates to a boolean. The expression is evaluated against the provided context. If it returns true, the rule's target is applied.
        "id": "A String", # Required. Evaluation rule ID. Max length: 128 bytes.
        "target": "A String", # Required. The target variant or allocation to apply if the condition is met. This should match the name of a defined variant or allocation's ID.
      },
    ],
    "variants": [ # Optional. A list of variants.
      { # Variant is an identifier for a value (name assigned to a value). DEPRECATED: Use Flag.Variants instead.
        "boolValue": True or False, # Optional. Boolean flag value.
        "doubleValue": 3.14, # Optional. Double flag value.
        "intValue": "A String", # Optional. Integer flag value.
        "name": "A String", # Required. Name of the variant. Max length: 128 bytes.
        "stringValue": "A String", # Optional. String flag value.
      },
    ],
  },
  "flag": "A String", # Required. Immutable. Name of the Flag this is a revision of.
  "labels": { # Optional. The labels on the resource, which can be used for categorization. similar to Kubernetes resource labels.
    "a_key": "A String",
  },
  "name": "A String", # Identifier. The resource name (full URI of the resource) following the standard naming scheme: "projects/{project}/locations/{location}/flagRevisions/{flag_revision_id}"
  "snapshot": { # Represents a single Flag. # Output only. Immutable. Snapshot of the Flag.
    "annotations": { # Optional. Annotations is an unstructured key-value map stored with a resource that may be set by external tools to store and retrieve arbitrary metadata. They are not queryable and should be preserved when modifying objects. More info: https://kubernetes.io/docs/user-guide/annotations
      "a_key": "A String",
    },
    "createTime": "A String", # Output only. The timestamp when the resource was created.
    "description": "A String", # Optional. Description of the flag. Max length: 500 bytes.
    "etag": "A String", # Output only. An opaque value that uniquely identifies a version or generation of a resource. It can be used to confirm that the client and server agree on the ordering of a resource being written.
    "evaluationSpec": { # EvaluationSpec holds rules for evaluating the value of a flag. # Optional. Specification of how the flag value should be evaluated. If a bool flag is created without an evaluation_spec specified, two default variants, "Enabled" (with bool_value = true) and "Disabled" (with bool_value = false), are created by default, and "Disabled" is set as the default_target.
      "allocations": [ # Optional. A list of allocations.
        { # Allocation defines a set of weighted flag variants, specifying how traffic is split based on the randomization unit.
          "description": "A String", # Optional. Description of the allocation. Max length: 500 bytes.
          "id": "A String", # Required. Allocation ID. Max length: 128 bytes.
          "randomizedOn": "A String", # Required. Key of the context attribute that is used for traffic splitting.
          "slots": [ # Required. Slots defines the weighted distribution of variants.
            { # AllocationSlot specifies a variant and the proportion of traffic allocated to it.
              "variant": "A String", # Required. Variant of the allocation slot.
              "weight": 42, # Required. Weight defines the proportion of traffic to allocate to the variant, relative to other slots in the same allocation.
            },
          ],
        },
      ],
      "attributes": [ # Optional. Names of the context attributes that are used in the evaluation rules and allocations.
        "A String",
      ],
      "defaultTarget": "A String", # Required. Default variant or allocation of the flag.
      "rules": [ # Optional. Evaluation rules define the logic for evaluating the flag against a given context. The rules are evaluated sequentially in their specified order.
        { # EvaluationRule defines a single rule for evaluating a feature flag. A rule consists of a condition that, if met, assigns a specific variant or allocation to the user.
          "condition": "A String", # Required. A Common Expression Language (CEL) expression that evaluates to a boolean. The expression is evaluated against the provided context. If it returns true, the rule's target is applied.
          "id": "A String", # Required. Evaluation rule ID. Max length: 128 bytes.
          "target": "A String", # Required. The target variant or allocation to apply if the condition is met. This should match the name of a defined variant or allocation's ID.
        },
      ],
      "variants": [ # Optional. A list of variants.
        { # Variant is an identifier for a value (name assigned to a value). DEPRECATED: Use Flag.Variants instead.
          "boolValue": True or False, # Optional. Boolean flag value.
          "doubleValue": 3.14, # Optional. Double flag value.
          "intValue": "A String", # Optional. Integer flag value.
          "name": "A String", # Required. Name of the variant. Max length: 128 bytes.
          "stringValue": "A String", # Optional. String flag value.
        },
      ],
    },
    "flagSet": "A String", # Optional. Flag set this flag belongs to.
    "flagValueType": "A String", # Optional. Immutable. Flag value type.
    "key": "A String", # Required. Immutable. Flag key used in runtime evaluation APIs (OpenFeature). Max length: 256 bytes.
    "labels": { # Optional. The labels on the resource, which can be used for categorization. similar to Kubernetes resource labels.
      "a_key": "A String",
    },
    "name": "A String", # Identifier. The resource name (full URI of the resource) following the standard naming scheme: "projects/{project}/locations/{location}/flags/{flag_id}"
    "state": "A String", # Optional. Current state of the flag.
    "uid": "A String", # Output only. The unique identifier of the resource. UID is unique in the time and space for this resource within the scope of the service. It is typically generated by the server on successful creation of a resource and must not be changed. UID is used to uniquely identify resources with resource name reuses. This should be a UUID4.
    "unitKind": "A String", # Required. Immutable. UnitKind that can consume this flag.
    "updateTime": "A String", # Output only. The timestamp when the resource was last updated. Any change to the resource made by users must refresh this value. Changes to a resource made by the service should refresh this value.
    "valueType": "A String", # Optional. Immutable. Deprecated: Use `flag_value_type` instead. Flag value type.
    "variants": [ # Optional. A list of variants.
      { # Variant is an identifier for a value (name assigned to a value).
        "booleanValue": True or False, # Optional. Boolean variant value.
        "description": "A String", # Optional. A human-readable description of what this variant does or represents.
        "doubleValue": 3.14, # Optional. Double variant value.
        "id": "A String", # Required. Variant ID. Max length: 128 bytes.
        "integerValue": "A String", # Optional. Integer variant value.
        "stringValue": "A String", # Optional. String variant value.
        "trackingId": "A String", # Optional. trackingId is unique depending on name and value of the variant within the scope of the service. It is typically generated by the server and must not be changed. trackingId is used to uniquely identify and track variants.
      },
    ],
  },
  "uid": "A String", # Output only. The unique identifier of the resource. UID is unique in the time and space for this resource within the scope of the service. It is typically generated by the server on successful creation of a resource and must not be changed. UID is used to uniquely identify resources with resource name reuses. This should be a UUID4.
  "updateTime": "A String", # Output only. The timestamp when the resource was last updated. Any change to the resource made by users must refresh this value. Changes to a resource made by the service should refresh this value.
}

  requestId: string, An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed. The server will guarantee that for at least 60 minutes since the first request. For example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments. The request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).
  updateMask: string, Field mask is used to specify the fields to be overwritten in the FlagRevision resource by the update. The fields specified in the update_mask are relative to the resource, not the full request. A field will be overwritten if it is in the mask. If the user does not provide a mask then all fields in the FlagRevision will be overwritten.
  validateOnly: boolean, If "validate_only" is set to true, the service will try to validate that this request would succeed, but will not actually make changes.
  x__xgafv: string, V1 error format.
    Allowed values
      1 - v1 error format
      2 - v2 error format

Returns:
  An object of the form:

    { # A snapshot of the EvaluationSpec for the Flag.
  "annotations": { # Optional. Annotations is an unstructured key-value map stored with a resource that may be set by external tools to store and retrieve arbitrary metadata. They are not queryable and should be preserved when modifying objects. More info: https://kubernetes.io/docs/user-guide/annotations
    "a_key": "A String",
  },
  "createTime": "A String", # Output only. The timestamp when the resource was created.
  "etag": "A String", # Output only. An opaque value that uniquely identifies a version or generation of a resource. It can be used to confirm that the client and server agree on the ordering of a resource being written.
  "evaluationSpec": { # EvaluationSpec holds rules for evaluating the value of a flag. # Output only. Immutable. Snapshot of the EvaluationSpec for the flag. DEPRECATED: Use snapshot instead.
    "allocations": [ # Optional. A list of allocations.
      { # Allocation defines a set of weighted flag variants, specifying how traffic is split based on the randomization unit.
        "description": "A String", # Optional. Description of the allocation. Max length: 500 bytes.
        "id": "A String", # Required. Allocation ID. Max length: 128 bytes.
        "randomizedOn": "A String", # Required. Key of the context attribute that is used for traffic splitting.
        "slots": [ # Required. Slots defines the weighted distribution of variants.
          { # AllocationSlot specifies a variant and the proportion of traffic allocated to it.
            "variant": "A String", # Required. Variant of the allocation slot.
            "weight": 42, # Required. Weight defines the proportion of traffic to allocate to the variant, relative to other slots in the same allocation.
          },
        ],
      },
    ],
    "attributes": [ # Optional. Names of the context attributes that are used in the evaluation rules and allocations.
      "A String",
    ],
    "defaultTarget": "A String", # Required. Default variant or allocation of the flag.
    "rules": [ # Optional. Evaluation rules define the logic for evaluating the flag against a given context. The rules are evaluated sequentially in their specified order.
      { # EvaluationRule defines a single rule for evaluating a feature flag. A rule consists of a condition that, if met, assigns a specific variant or allocation to the user.
        "condition": "A String", # Required. A Common Expression Language (CEL) expression that evaluates to a boolean. The expression is evaluated against the provided context. If it returns true, the rule's target is applied.
        "id": "A String", # Required. Evaluation rule ID. Max length: 128 bytes.
        "target": "A String", # Required. The target variant or allocation to apply if the condition is met. This should match the name of a defined variant or allocation's ID.
      },
    ],
    "variants": [ # Optional. A list of variants.
      { # Variant is an identifier for a value (name assigned to a value). DEPRECATED: Use Flag.Variants instead.
        "boolValue": True or False, # Optional. Boolean flag value.
        "doubleValue": 3.14, # Optional. Double flag value.
        "intValue": "A String", # Optional. Integer flag value.
        "name": "A String", # Required. Name of the variant. Max length: 128 bytes.
        "stringValue": "A String", # Optional. String flag value.
      },
    ],
  },
  "flag": "A String", # Required. Immutable. Name of the Flag this is a revision of.
  "labels": { # Optional. The labels on the resource, which can be used for categorization. similar to Kubernetes resource labels.
    "a_key": "A String",
  },
  "name": "A String", # Identifier. The resource name (full URI of the resource) following the standard naming scheme: "projects/{project}/locations/{location}/flagRevisions/{flag_revision_id}"
  "snapshot": { # Represents a single Flag. # Output only. Immutable. Snapshot of the Flag.
    "annotations": { # Optional. Annotations is an unstructured key-value map stored with a resource that may be set by external tools to store and retrieve arbitrary metadata. They are not queryable and should be preserved when modifying objects. More info: https://kubernetes.io/docs/user-guide/annotations
      "a_key": "A String",
    },
    "createTime": "A String", # Output only. The timestamp when the resource was created.
    "description": "A String", # Optional. Description of the flag. Max length: 500 bytes.
    "etag": "A String", # Output only. An opaque value that uniquely identifies a version or generation of a resource. It can be used to confirm that the client and server agree on the ordering of a resource being written.
    "evaluationSpec": { # EvaluationSpec holds rules for evaluating the value of a flag. # Optional. Specification of how the flag value should be evaluated. If a bool flag is created without an evaluation_spec specified, two default variants, "Enabled" (with bool_value = true) and "Disabled" (with bool_value = false), are created by default, and "Disabled" is set as the default_target.
      "allocations": [ # Optional. A list of allocations.
        { # Allocation defines a set of weighted flag variants, specifying how traffic is split based on the randomization unit.
          "description": "A String", # Optional. Description of the allocation. Max length: 500 bytes.
          "id": "A String", # Required. Allocation ID. Max length: 128 bytes.
          "randomizedOn": "A String", # Required. Key of the context attribute that is used for traffic splitting.
          "slots": [ # Required. Slots defines the weighted distribution of variants.
            { # AllocationSlot specifies a variant and the proportion of traffic allocated to it.
              "variant": "A String", # Required. Variant of the allocation slot.
              "weight": 42, # Required. Weight defines the proportion of traffic to allocate to the variant, relative to other slots in the same allocation.
            },
          ],
        },
      ],
      "attributes": [ # Optional. Names of the context attributes that are used in the evaluation rules and allocations.
        "A String",
      ],
      "defaultTarget": "A String", # Required. Default variant or allocation of the flag.
      "rules": [ # Optional. Evaluation rules define the logic for evaluating the flag against a given context. The rules are evaluated sequentially in their specified order.
        { # EvaluationRule defines a single rule for evaluating a feature flag. A rule consists of a condition that, if met, assigns a specific variant or allocation to the user.
          "condition": "A String", # Required. A Common Expression Language (CEL) expression that evaluates to a boolean. The expression is evaluated against the provided context. If it returns true, the rule's target is applied.
          "id": "A String", # Required. Evaluation rule ID. Max length: 128 bytes.
          "target": "A String", # Required. The target variant or allocation to apply if the condition is met. This should match the name of a defined variant or allocation's ID.
        },
      ],
      "variants": [ # Optional. A list of variants.
        { # Variant is an identifier for a value (name assigned to a value). DEPRECATED: Use Flag.Variants instead.
          "boolValue": True or False, # Optional. Boolean flag value.
          "doubleValue": 3.14, # Optional. Double flag value.
          "intValue": "A String", # Optional. Integer flag value.
          "name": "A String", # Required. Name of the variant. Max length: 128 bytes.
          "stringValue": "A String", # Optional. String flag value.
        },
      ],
    },
    "flagSet": "A String", # Optional. Flag set this flag belongs to.
    "flagValueType": "A String", # Optional. Immutable. Flag value type.
    "key": "A String", # Required. Immutable. Flag key used in runtime evaluation APIs (OpenFeature). Max length: 256 bytes.
    "labels": { # Optional. The labels on the resource, which can be used for categorization. similar to Kubernetes resource labels.
      "a_key": "A String",
    },
    "name": "A String", # Identifier. The resource name (full URI of the resource) following the standard naming scheme: "projects/{project}/locations/{location}/flags/{flag_id}"
    "state": "A String", # Optional. Current state of the flag.
    "uid": "A String", # Output only. The unique identifier of the resource. UID is unique in the time and space for this resource within the scope of the service. It is typically generated by the server on successful creation of a resource and must not be changed. UID is used to uniquely identify resources with resource name reuses. This should be a UUID4.
    "unitKind": "A String", # Required. Immutable. UnitKind that can consume this flag.
    "updateTime": "A String", # Output only. The timestamp when the resource was last updated. Any change to the resource made by users must refresh this value. Changes to a resource made by the service should refresh this value.
    "valueType": "A String", # Optional. Immutable. Deprecated: Use `flag_value_type` instead. Flag value type.
    "variants": [ # Optional. A list of variants.
      { # Variant is an identifier for a value (name assigned to a value).
        "booleanValue": True or False, # Optional. Boolean variant value.
        "description": "A String", # Optional. A human-readable description of what this variant does or represents.
        "doubleValue": 3.14, # Optional. Double variant value.
        "id": "A String", # Required. Variant ID. Max length: 128 bytes.
        "integerValue": "A String", # Optional. Integer variant value.
        "stringValue": "A String", # Optional. String variant value.
        "trackingId": "A String", # Optional. trackingId is unique depending on name and value of the variant within the scope of the service. It is typically generated by the server and must not be changed. trackingId is used to uniquely identify and track variants.
      },
    ],
  },
  "uid": "A String", # Output only. The unique identifier of the resource. UID is unique in the time and space for this resource within the scope of the service. It is typically generated by the server on successful creation of a resource and must not be changed. UID is used to uniquely identify resources with resource name reuses. This should be a UUID4.
  "updateTime": "A String", # Output only. The timestamp when the resource was last updated. Any change to the resource made by users must refresh this value. Changes to a resource made by the service should refresh this value.
}