Class: Google::Apis::CloudresourcemanagerV1::ListPolicy
- Inherits:
-
Object
- Object
- Google::Apis::CloudresourcemanagerV1::ListPolicy
- Defined in:
- generated/google/apis/cloudresourcemanager_v1/classes.rb,
generated/google/apis/cloudresourcemanager_v1/representations.rb,
generated/google/apis/cloudresourcemanager_v1/representations.rb
Overview
Used in policy_type
to specify how list_policy
behaves at this
resource.
A ListPolicy
can define specific values that are allowed or denied by
setting either the allowed_values
or denied_values
fields. It can also
be used to allow or deny all values, by setting the all_values
field. If
all_values
is ALL_VALUES_UNSPECIFIED
, exactly one of allowed_values
or denied_values
must be set (attempting to set both or neither will
result in a failed request). If all_values
is set to either ALLOW
or
DENY
, allowed_values
and denied_values
must be unset.
Instance Attribute Summary collapse
-
#all_values ⇒ String
The policy all_values state.
-
#allowed_values ⇒ Array<String>
List of values allowed at this resource.
-
#denied_values ⇒ Array<String>
List of values denied at this resource.
-
#inherit_from_parent ⇒ Boolean
(also: #inherit_from_parent?)
Determines the inheritance behavior for this
Policy
. -
#suggested_value ⇒ String
Optional.
Instance Method Summary collapse
-
#initialize(**args) ⇒ ListPolicy
constructor
A new instance of ListPolicy.
-
#update!(**args) ⇒ Object
Update properties of this object.
Methods included from Google::Apis::Core::JsonObjectSupport
Methods included from Google::Apis::Core::Hashable
Constructor Details
#initialize(**args) ⇒ ListPolicy
Returns a new instance of ListPolicy
1583 1584 1585 |
# File 'generated/google/apis/cloudresourcemanager_v1/classes.rb', line 1583 def initialize(**args) update!(**args) end |
Instance Attribute Details
#all_values ⇒ String
The policy all_values state.
Corresponds to the JSON property allValues
1483 1484 1485 |
# File 'generated/google/apis/cloudresourcemanager_v1/classes.rb', line 1483 def all_values @all_values end |
#allowed_values ⇒ Array<String>
List of values allowed at this resource. an only be set if no values are
set for denied_values
and all_values
is set to
ALL_VALUES_UNSPECIFIED
.
Corresponds to the JSON property allowedValues
1490 1491 1492 |
# File 'generated/google/apis/cloudresourcemanager_v1/classes.rb', line 1490 def allowed_values @allowed_values end |
#denied_values ⇒ Array<String>
List of values denied at this resource. Can only be set if no values are
set for allowed_values
and all_values
is set to
ALL_VALUES_UNSPECIFIED
.
Corresponds to the JSON property deniedValues
1581 1582 1583 |
# File 'generated/google/apis/cloudresourcemanager_v1/classes.rb', line 1581 def denied_values @denied_values end |
#inherit_from_parent ⇒ Boolean Also known as: inherit_from_parent?
Determines the inheritance behavior for this Policy
.
By default, a ListPolicy
set at a resource supercedes any Policy
set
anywhere up the resource hierarchy. However, if inherit_from_parent
is
set to true
, then the values from the effective Policy
of the parent
resource are inherited, meaning the values set in this Policy
are
added to the values inherited up the hierarchy.
Setting Policy
hierarchies that inherit both allowed values and denied
values isn't recommended in most circumstances to keep the configuration
simple and understandable. However, it is possible to set a Policy
with
allowed_values
set that inherits a Policy
with denied_values
set.
In this case, the values that are allowed must be in allowed_values
and
not present in denied_values
.
For example, suppose you have a Constraint
constraints/serviceuser.services
, which has a constraint_type
of
list_constraint
, and with constraint_default
set to ALLOW
.
Suppose that at the Organization level, a Policy
is applied that
restricts the allowed API activations to E1`, `E2
. Then, if a
Policy
is applied to a project below the Organization that has
inherit_from_parent
set to false
and field all_values set to DENY,
then an attempt to activate any API will be denied.
The following examples demonstrate different possible layerings:
Example 1 (no inherited values):
organizations/foo
has a Policy
with values:
allowed_values: “E1” allowed_values:”E2”
projects/bar
has inherit_from_parent
false
and values:
allowed_values: "E3" allowed_values: "E4"
The accepted values at organizations/foo
are E1
, E2
.
The accepted values at projects/bar
are E3
, and E4
.
Example 2 (inherited values):
organizations/foo
has a Policy
with values:
allowed_values: “E1” allowed_values:”E2”
projects/bar
has a Policy
with values:
value: “E3” value: ”E4” inherit_from_parent: true
The accepted values at organizations/foo
are E1
, E2
.
The accepted values at projects/bar
are E1
, E2
, E3
, and E4
.
Example 3 (inheriting both allowed and denied values):
organizations/foo
has a Policy
with values:
allowed_values: "E1" allowed_values: "E2"
projects/bar
has a Policy
with:
denied_values: "E1"
The accepted values at organizations/foo
are E1
, E2
.
The value accepted at projects/bar
is E2
.
Example 4 (RestoreDefault):
organizations/foo
has a Policy
with values:
allowed_values: “E1” allowed_values:”E2”
projects/bar
has a Policy
with values:
RestoreDefault:
`
The accepted values at
organizations/fooare
E1,
E2.
The accepted values at
projects/barare either all or none depending on
the value of
constraint_default(if
ALLOW, all; if
DENY, none).
Example 5 (no policy inherits parent policy):
organizations/foohas no
Policyset.
projects/barhas no
Policyset.
The accepted values at both levels are either all or none depending on
the value of
constraint_default(if
ALLOW, all; if
DENY, none).
Example 6 (ListConstraint allowing all):
organizations/foohas a
Policywith values:
allowed_values: “E1” allowed_values: ”E2”
projects/barhas a
Policywith:
all: ALLOW
The accepted values at
organizations/fooare
E1, E2
.
Any value is accepted at projects/bar
.
Example 7 (ListConstraint allowing none):
organizations/foo
has a Policy
with values:
allowed_values: “E1” allowed_values: ”E2”
projects/bar
has a Policy
with:
all: DENY
The accepted values at organizations/foo
are E1
, E2.
No value is accepted at
projects/bar.
Corresponds to the JSON property
inheritFromParent`
1573 1574 1575 |
# File 'generated/google/apis/cloudresourcemanager_v1/classes.rb', line 1573 def inherit_from_parent @inherit_from_parent end |
#suggested_value ⇒ String
Optional. The Google Cloud Console will try to default to a configuration
that matches the value specified in this Policy
. If suggested_value
is not set, it will inherit the value specified higher in the hierarchy,
unless inherit_from_parent
is false
.
Corresponds to the JSON property suggestedValue
1498 1499 1500 |
# File 'generated/google/apis/cloudresourcemanager_v1/classes.rb', line 1498 def suggested_value @suggested_value end |
Instance Method Details
#update!(**args) ⇒ Object
Update properties of this object
1588 1589 1590 1591 1592 1593 1594 |
# File 'generated/google/apis/cloudresourcemanager_v1/classes.rb', line 1588 def update!(**args) @all_values = args[:all_values] if args.key?(:all_values) @allowed_values = args[:allowed_values] if args.key?(:allowed_values) @suggested_value = args[:suggested_value] if args.key?(:suggested_value) @inherit_from_parent = args[:inherit_from_parent] if args.key?(:inherit_from_parent) @denied_values = args[:denied_values] if args.key?(:denied_values) end |