Class: Google::Cloud::OsConfig::V1::OSPolicyAssignment

Inherits:
Object
  • Object
show all
Extended by:
Protobuf::MessageExts::ClassMethods
Includes:
Protobuf::MessageExts
Defined in:
proto_docs/google/cloud/osconfig/v1/os_policy_assignments.rb

Overview

OS policy assignment is an API resource that is used to apply a set of OS policies to a dynamically targeted group of Compute Engine VM instances.

An OS policy is used to define the desired state configuration for a Compute Engine VM instance through a set of configuration resources that provide capabilities such as installing or removing software packages, or executing a script.

For more information, see OS policy and OS policy assignment.

Defined Under Namespace

Modules: RolloutState Classes: InstanceFilter, LabelSet, Rollout

Instance Attribute Summary collapse

Instance Attribute Details

#baseline::Boolean (readonly)

Returns Output only. Indicates that this revision has been successfully rolled out in this zone and new VMs will be assigned OS policies from this revision.

For a given OS policy assignment, there is only one revision with a value of true for this field.

Returns:

  • (::Boolean)

    Output only. Indicates that this revision has been successfully rolled out in this zone and new VMs will be assigned OS policies from this revision.

    For a given OS policy assignment, there is only one revision with a value of true for this field.



98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
# File 'proto_docs/google/cloud/osconfig/v1/os_policy_assignments.rb', line 98

class OSPolicyAssignment
  include ::Google::Protobuf::MessageExts
  extend ::Google::Protobuf::MessageExts::ClassMethods

  # Message representing label set.
  # * A label is a key value pair set for a VM.
  # * A LabelSet is a set of labels.
  # * Labels within a LabelSet are ANDed. In other words, a LabelSet is
  #   applicable for a VM only if it matches all the labels in the
  #   LabelSet.
  # * Example: A LabelSet with 2 labels: `env=prod` and `type=webserver` will
  #            only be applicable for those VMs with both labels
  #            present.
  # @!attribute [rw] labels
  #   @return [::Google::Protobuf::Map{::String => ::String}]
  #     Labels are identified by key/value pairs in this map.
  #     A VM should contain all the key/value pairs specified in this
  #     map to be selected.
  class LabelSet
    include ::Google::Protobuf::MessageExts
    extend ::Google::Protobuf::MessageExts::ClassMethods

    # @!attribute [rw] key
    #   @return [::String]
    # @!attribute [rw] value
    #   @return [::String]
    class LabelsEntry
      include ::Google::Protobuf::MessageExts
      extend ::Google::Protobuf::MessageExts::ClassMethods
    end
  end

  # Filters to select target VMs for an assignment.
  #
  # If more than one filter criteria is specified below, a VM will be selected
  # if and only if it satisfies all of them.
  # @!attribute [rw] all
  #   @return [::Boolean]
  #     Target all VMs in the project. If true, no other criteria is
  #     permitted.
  # @!attribute [rw] inclusion_labels
  #   @return [::Array<::Google::Cloud::OsConfig::V1::OSPolicyAssignment::LabelSet>]
  #     List of label sets used for VM inclusion.
  #
  #     If the list has more than one `LabelSet`, the VM is included if any
  #     of the label sets are applicable for the VM.
  # @!attribute [rw] exclusion_labels
  #   @return [::Array<::Google::Cloud::OsConfig::V1::OSPolicyAssignment::LabelSet>]
  #     List of label sets used for VM exclusion.
  #
  #     If the list has more than one label set, the VM is excluded if any
  #     of the label sets are applicable for the VM.
  # @!attribute [rw] inventories
  #   @return [::Array<::Google::Cloud::OsConfig::V1::OSPolicyAssignment::InstanceFilter::Inventory>]
  #     List of inventories to select VMs.
  #
  #     A VM is selected if its inventory data matches at least one of the
  #     following inventories.
  class InstanceFilter
    include ::Google::Protobuf::MessageExts
    extend ::Google::Protobuf::MessageExts::ClassMethods

    # VM inventory details.
    # @!attribute [rw] os_short_name
    #   @return [::String]
    #     Required. The OS short name
    # @!attribute [rw] os_version
    #   @return [::String]
    #     The OS version
    #
    #     Prefix matches are supported if asterisk(*) is provided as the
    #     last character. For example, to match all versions with a major
    #     version of `7`, specify the following value for this field `7.*`
    #
    #     An empty string matches all OS versions.
    class Inventory
      include ::Google::Protobuf::MessageExts
      extend ::Google::Protobuf::MessageExts::ClassMethods
    end
  end

  # Message to configure the rollout at the zonal level for the OS policy
  # assignment.
  # @!attribute [rw] disruption_budget
  #   @return [::Google::Cloud::OsConfig::V1::FixedOrPercent]
  #     Required. The maximum number (or percentage) of VMs per zone to disrupt
  #     at any given moment.
  # @!attribute [rw] min_wait_duration
  #   @return [::Google::Protobuf::Duration]
  #     Required. This determines the minimum duration of time to wait after the
  #     configuration changes are applied through the current rollout. A
  #     VM continues to count towards the `disruption_budget` at least
  #     until this duration of time has passed after configuration changes are
  #     applied.
  class Rollout
    include ::Google::Protobuf::MessageExts
    extend ::Google::Protobuf::MessageExts::ClassMethods
  end

  # OS policy assignment rollout state
  module RolloutState
    # Invalid value
    ROLLOUT_STATE_UNSPECIFIED = 0

    # The rollout is in progress.
    IN_PROGRESS = 1

    # The rollout is being cancelled.
    CANCELLING = 2

    # The rollout is cancelled.
    CANCELLED = 3

    # The rollout has completed successfully.
    SUCCEEDED = 4
  end
end

#deleted::Boolean (readonly)

Returns Output only. Indicates that this revision deletes the OS policy assignment.

Returns:

  • (::Boolean)

    Output only. Indicates that this revision deletes the OS policy assignment.



98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
# File 'proto_docs/google/cloud/osconfig/v1/os_policy_assignments.rb', line 98

class OSPolicyAssignment
  include ::Google::Protobuf::MessageExts
  extend ::Google::Protobuf::MessageExts::ClassMethods

  # Message representing label set.
  # * A label is a key value pair set for a VM.
  # * A LabelSet is a set of labels.
  # * Labels within a LabelSet are ANDed. In other words, a LabelSet is
  #   applicable for a VM only if it matches all the labels in the
  #   LabelSet.
  # * Example: A LabelSet with 2 labels: `env=prod` and `type=webserver` will
  #            only be applicable for those VMs with both labels
  #            present.
  # @!attribute [rw] labels
  #   @return [::Google::Protobuf::Map{::String => ::String}]
  #     Labels are identified by key/value pairs in this map.
  #     A VM should contain all the key/value pairs specified in this
  #     map to be selected.
  class LabelSet
    include ::Google::Protobuf::MessageExts
    extend ::Google::Protobuf::MessageExts::ClassMethods

    # @!attribute [rw] key
    #   @return [::String]
    # @!attribute [rw] value
    #   @return [::String]
    class LabelsEntry
      include ::Google::Protobuf::MessageExts
      extend ::Google::Protobuf::MessageExts::ClassMethods
    end
  end

  # Filters to select target VMs for an assignment.
  #
  # If more than one filter criteria is specified below, a VM will be selected
  # if and only if it satisfies all of them.
  # @!attribute [rw] all
  #   @return [::Boolean]
  #     Target all VMs in the project. If true, no other criteria is
  #     permitted.
  # @!attribute [rw] inclusion_labels
  #   @return [::Array<::Google::Cloud::OsConfig::V1::OSPolicyAssignment::LabelSet>]
  #     List of label sets used for VM inclusion.
  #
  #     If the list has more than one `LabelSet`, the VM is included if any
  #     of the label sets are applicable for the VM.
  # @!attribute [rw] exclusion_labels
  #   @return [::Array<::Google::Cloud::OsConfig::V1::OSPolicyAssignment::LabelSet>]
  #     List of label sets used for VM exclusion.
  #
  #     If the list has more than one label set, the VM is excluded if any
  #     of the label sets are applicable for the VM.
  # @!attribute [rw] inventories
  #   @return [::Array<::Google::Cloud::OsConfig::V1::OSPolicyAssignment::InstanceFilter::Inventory>]
  #     List of inventories to select VMs.
  #
  #     A VM is selected if its inventory data matches at least one of the
  #     following inventories.
  class InstanceFilter
    include ::Google::Protobuf::MessageExts
    extend ::Google::Protobuf::MessageExts::ClassMethods

    # VM inventory details.
    # @!attribute [rw] os_short_name
    #   @return [::String]
    #     Required. The OS short name
    # @!attribute [rw] os_version
    #   @return [::String]
    #     The OS version
    #
    #     Prefix matches are supported if asterisk(*) is provided as the
    #     last character. For example, to match all versions with a major
    #     version of `7`, specify the following value for this field `7.*`
    #
    #     An empty string matches all OS versions.
    class Inventory
      include ::Google::Protobuf::MessageExts
      extend ::Google::Protobuf::MessageExts::ClassMethods
    end
  end

  # Message to configure the rollout at the zonal level for the OS policy
  # assignment.
  # @!attribute [rw] disruption_budget
  #   @return [::Google::Cloud::OsConfig::V1::FixedOrPercent]
  #     Required. The maximum number (or percentage) of VMs per zone to disrupt
  #     at any given moment.
  # @!attribute [rw] min_wait_duration
  #   @return [::Google::Protobuf::Duration]
  #     Required. This determines the minimum duration of time to wait after the
  #     configuration changes are applied through the current rollout. A
  #     VM continues to count towards the `disruption_budget` at least
  #     until this duration of time has passed after configuration changes are
  #     applied.
  class Rollout
    include ::Google::Protobuf::MessageExts
    extend ::Google::Protobuf::MessageExts::ClassMethods
  end

  # OS policy assignment rollout state
  module RolloutState
    # Invalid value
    ROLLOUT_STATE_UNSPECIFIED = 0

    # The rollout is in progress.
    IN_PROGRESS = 1

    # The rollout is being cancelled.
    CANCELLING = 2

    # The rollout is cancelled.
    CANCELLED = 3

    # The rollout has completed successfully.
    SUCCEEDED = 4
  end
end

#description::String

Returns OS policy assignment description. Length of the description is limited to 1024 characters.

Returns:

  • (::String)

    OS policy assignment description. Length of the description is limited to 1024 characters.



98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
# File 'proto_docs/google/cloud/osconfig/v1/os_policy_assignments.rb', line 98

class OSPolicyAssignment
  include ::Google::Protobuf::MessageExts
  extend ::Google::Protobuf::MessageExts::ClassMethods

  # Message representing label set.
  # * A label is a key value pair set for a VM.
  # * A LabelSet is a set of labels.
  # * Labels within a LabelSet are ANDed. In other words, a LabelSet is
  #   applicable for a VM only if it matches all the labels in the
  #   LabelSet.
  # * Example: A LabelSet with 2 labels: `env=prod` and `type=webserver` will
  #            only be applicable for those VMs with both labels
  #            present.
  # @!attribute [rw] labels
  #   @return [::Google::Protobuf::Map{::String => ::String}]
  #     Labels are identified by key/value pairs in this map.
  #     A VM should contain all the key/value pairs specified in this
  #     map to be selected.
  class LabelSet
    include ::Google::Protobuf::MessageExts
    extend ::Google::Protobuf::MessageExts::ClassMethods

    # @!attribute [rw] key
    #   @return [::String]
    # @!attribute [rw] value
    #   @return [::String]
    class LabelsEntry
      include ::Google::Protobuf::MessageExts
      extend ::Google::Protobuf::MessageExts::ClassMethods
    end
  end

  # Filters to select target VMs for an assignment.
  #
  # If more than one filter criteria is specified below, a VM will be selected
  # if and only if it satisfies all of them.
  # @!attribute [rw] all
  #   @return [::Boolean]
  #     Target all VMs in the project. If true, no other criteria is
  #     permitted.
  # @!attribute [rw] inclusion_labels
  #   @return [::Array<::Google::Cloud::OsConfig::V1::OSPolicyAssignment::LabelSet>]
  #     List of label sets used for VM inclusion.
  #
  #     If the list has more than one `LabelSet`, the VM is included if any
  #     of the label sets are applicable for the VM.
  # @!attribute [rw] exclusion_labels
  #   @return [::Array<::Google::Cloud::OsConfig::V1::OSPolicyAssignment::LabelSet>]
  #     List of label sets used for VM exclusion.
  #
  #     If the list has more than one label set, the VM is excluded if any
  #     of the label sets are applicable for the VM.
  # @!attribute [rw] inventories
  #   @return [::Array<::Google::Cloud::OsConfig::V1::OSPolicyAssignment::InstanceFilter::Inventory>]
  #     List of inventories to select VMs.
  #
  #     A VM is selected if its inventory data matches at least one of the
  #     following inventories.
  class InstanceFilter
    include ::Google::Protobuf::MessageExts
    extend ::Google::Protobuf::MessageExts::ClassMethods

    # VM inventory details.
    # @!attribute [rw] os_short_name
    #   @return [::String]
    #     Required. The OS short name
    # @!attribute [rw] os_version
    #   @return [::String]
    #     The OS version
    #
    #     Prefix matches are supported if asterisk(*) is provided as the
    #     last character. For example, to match all versions with a major
    #     version of `7`, specify the following value for this field `7.*`
    #
    #     An empty string matches all OS versions.
    class Inventory
      include ::Google::Protobuf::MessageExts
      extend ::Google::Protobuf::MessageExts::ClassMethods
    end
  end

  # Message to configure the rollout at the zonal level for the OS policy
  # assignment.
  # @!attribute [rw] disruption_budget
  #   @return [::Google::Cloud::OsConfig::V1::FixedOrPercent]
  #     Required. The maximum number (or percentage) of VMs per zone to disrupt
  #     at any given moment.
  # @!attribute [rw] min_wait_duration
  #   @return [::Google::Protobuf::Duration]
  #     Required. This determines the minimum duration of time to wait after the
  #     configuration changes are applied through the current rollout. A
  #     VM continues to count towards the `disruption_budget` at least
  #     until this duration of time has passed after configuration changes are
  #     applied.
  class Rollout
    include ::Google::Protobuf::MessageExts
    extend ::Google::Protobuf::MessageExts::ClassMethods
  end

  # OS policy assignment rollout state
  module RolloutState
    # Invalid value
    ROLLOUT_STATE_UNSPECIFIED = 0

    # The rollout is in progress.
    IN_PROGRESS = 1

    # The rollout is being cancelled.
    CANCELLING = 2

    # The rollout is cancelled.
    CANCELLED = 3

    # The rollout has completed successfully.
    SUCCEEDED = 4
  end
end

#etag::String

Returns The etag for this OS policy assignment. If this is provided on update, it must match the server's etag.

Returns:

  • (::String)

    The etag for this OS policy assignment. If this is provided on update, it must match the server's etag.



98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
# File 'proto_docs/google/cloud/osconfig/v1/os_policy_assignments.rb', line 98

class OSPolicyAssignment
  include ::Google::Protobuf::MessageExts
  extend ::Google::Protobuf::MessageExts::ClassMethods

  # Message representing label set.
  # * A label is a key value pair set for a VM.
  # * A LabelSet is a set of labels.
  # * Labels within a LabelSet are ANDed. In other words, a LabelSet is
  #   applicable for a VM only if it matches all the labels in the
  #   LabelSet.
  # * Example: A LabelSet with 2 labels: `env=prod` and `type=webserver` will
  #            only be applicable for those VMs with both labels
  #            present.
  # @!attribute [rw] labels
  #   @return [::Google::Protobuf::Map{::String => ::String}]
  #     Labels are identified by key/value pairs in this map.
  #     A VM should contain all the key/value pairs specified in this
  #     map to be selected.
  class LabelSet
    include ::Google::Protobuf::MessageExts
    extend ::Google::Protobuf::MessageExts::ClassMethods

    # @!attribute [rw] key
    #   @return [::String]
    # @!attribute [rw] value
    #   @return [::String]
    class LabelsEntry
      include ::Google::Protobuf::MessageExts
      extend ::Google::Protobuf::MessageExts::ClassMethods
    end
  end

  # Filters to select target VMs for an assignment.
  #
  # If more than one filter criteria is specified below, a VM will be selected
  # if and only if it satisfies all of them.
  # @!attribute [rw] all
  #   @return [::Boolean]
  #     Target all VMs in the project. If true, no other criteria is
  #     permitted.
  # @!attribute [rw] inclusion_labels
  #   @return [::Array<::Google::Cloud::OsConfig::V1::OSPolicyAssignment::LabelSet>]
  #     List of label sets used for VM inclusion.
  #
  #     If the list has more than one `LabelSet`, the VM is included if any
  #     of the label sets are applicable for the VM.
  # @!attribute [rw] exclusion_labels
  #   @return [::Array<::Google::Cloud::OsConfig::V1::OSPolicyAssignment::LabelSet>]
  #     List of label sets used for VM exclusion.
  #
  #     If the list has more than one label set, the VM is excluded if any
  #     of the label sets are applicable for the VM.
  # @!attribute [rw] inventories
  #   @return [::Array<::Google::Cloud::OsConfig::V1::OSPolicyAssignment::InstanceFilter::Inventory>]
  #     List of inventories to select VMs.
  #
  #     A VM is selected if its inventory data matches at least one of the
  #     following inventories.
  class InstanceFilter
    include ::Google::Protobuf::MessageExts
    extend ::Google::Protobuf::MessageExts::ClassMethods

    # VM inventory details.
    # @!attribute [rw] os_short_name
    #   @return [::String]
    #     Required. The OS short name
    # @!attribute [rw] os_version
    #   @return [::String]
    #     The OS version
    #
    #     Prefix matches are supported if asterisk(*) is provided as the
    #     last character. For example, to match all versions with a major
    #     version of `7`, specify the following value for this field `7.*`
    #
    #     An empty string matches all OS versions.
    class Inventory
      include ::Google::Protobuf::MessageExts
      extend ::Google::Protobuf::MessageExts::ClassMethods
    end
  end

  # Message to configure the rollout at the zonal level for the OS policy
  # assignment.
  # @!attribute [rw] disruption_budget
  #   @return [::Google::Cloud::OsConfig::V1::FixedOrPercent]
  #     Required. The maximum number (or percentage) of VMs per zone to disrupt
  #     at any given moment.
  # @!attribute [rw] min_wait_duration
  #   @return [::Google::Protobuf::Duration]
  #     Required. This determines the minimum duration of time to wait after the
  #     configuration changes are applied through the current rollout. A
  #     VM continues to count towards the `disruption_budget` at least
  #     until this duration of time has passed after configuration changes are
  #     applied.
  class Rollout
    include ::Google::Protobuf::MessageExts
    extend ::Google::Protobuf::MessageExts::ClassMethods
  end

  # OS policy assignment rollout state
  module RolloutState
    # Invalid value
    ROLLOUT_STATE_UNSPECIFIED = 0

    # The rollout is in progress.
    IN_PROGRESS = 1

    # The rollout is being cancelled.
    CANCELLING = 2

    # The rollout is cancelled.
    CANCELLED = 3

    # The rollout has completed successfully.
    SUCCEEDED = 4
  end
end

#instance_filter::Google::Cloud::OsConfig::V1::OSPolicyAssignment::InstanceFilter

Returns Required. Filter to select VMs.

Returns:



98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
# File 'proto_docs/google/cloud/osconfig/v1/os_policy_assignments.rb', line 98

class OSPolicyAssignment
  include ::Google::Protobuf::MessageExts
  extend ::Google::Protobuf::MessageExts::ClassMethods

  # Message representing label set.
  # * A label is a key value pair set for a VM.
  # * A LabelSet is a set of labels.
  # * Labels within a LabelSet are ANDed. In other words, a LabelSet is
  #   applicable for a VM only if it matches all the labels in the
  #   LabelSet.
  # * Example: A LabelSet with 2 labels: `env=prod` and `type=webserver` will
  #            only be applicable for those VMs with both labels
  #            present.
  # @!attribute [rw] labels
  #   @return [::Google::Protobuf::Map{::String => ::String}]
  #     Labels are identified by key/value pairs in this map.
  #     A VM should contain all the key/value pairs specified in this
  #     map to be selected.
  class LabelSet
    include ::Google::Protobuf::MessageExts
    extend ::Google::Protobuf::MessageExts::ClassMethods

    # @!attribute [rw] key
    #   @return [::String]
    # @!attribute [rw] value
    #   @return [::String]
    class LabelsEntry
      include ::Google::Protobuf::MessageExts
      extend ::Google::Protobuf::MessageExts::ClassMethods
    end
  end

  # Filters to select target VMs for an assignment.
  #
  # If more than one filter criteria is specified below, a VM will be selected
  # if and only if it satisfies all of them.
  # @!attribute [rw] all
  #   @return [::Boolean]
  #     Target all VMs in the project. If true, no other criteria is
  #     permitted.
  # @!attribute [rw] inclusion_labels
  #   @return [::Array<::Google::Cloud::OsConfig::V1::OSPolicyAssignment::LabelSet>]
  #     List of label sets used for VM inclusion.
  #
  #     If the list has more than one `LabelSet`, the VM is included if any
  #     of the label sets are applicable for the VM.
  # @!attribute [rw] exclusion_labels
  #   @return [::Array<::Google::Cloud::OsConfig::V1::OSPolicyAssignment::LabelSet>]
  #     List of label sets used for VM exclusion.
  #
  #     If the list has more than one label set, the VM is excluded if any
  #     of the label sets are applicable for the VM.
  # @!attribute [rw] inventories
  #   @return [::Array<::Google::Cloud::OsConfig::V1::OSPolicyAssignment::InstanceFilter::Inventory>]
  #     List of inventories to select VMs.
  #
  #     A VM is selected if its inventory data matches at least one of the
  #     following inventories.
  class InstanceFilter
    include ::Google::Protobuf::MessageExts
    extend ::Google::Protobuf::MessageExts::ClassMethods

    # VM inventory details.
    # @!attribute [rw] os_short_name
    #   @return [::String]
    #     Required. The OS short name
    # @!attribute [rw] os_version
    #   @return [::String]
    #     The OS version
    #
    #     Prefix matches are supported if asterisk(*) is provided as the
    #     last character. For example, to match all versions with a major
    #     version of `7`, specify the following value for this field `7.*`
    #
    #     An empty string matches all OS versions.
    class Inventory
      include ::Google::Protobuf::MessageExts
      extend ::Google::Protobuf::MessageExts::ClassMethods
    end
  end

  # Message to configure the rollout at the zonal level for the OS policy
  # assignment.
  # @!attribute [rw] disruption_budget
  #   @return [::Google::Cloud::OsConfig::V1::FixedOrPercent]
  #     Required. The maximum number (or percentage) of VMs per zone to disrupt
  #     at any given moment.
  # @!attribute [rw] min_wait_duration
  #   @return [::Google::Protobuf::Duration]
  #     Required. This determines the minimum duration of time to wait after the
  #     configuration changes are applied through the current rollout. A
  #     VM continues to count towards the `disruption_budget` at least
  #     until this duration of time has passed after configuration changes are
  #     applied.
  class Rollout
    include ::Google::Protobuf::MessageExts
    extend ::Google::Protobuf::MessageExts::ClassMethods
  end

  # OS policy assignment rollout state
  module RolloutState
    # Invalid value
    ROLLOUT_STATE_UNSPECIFIED = 0

    # The rollout is in progress.
    IN_PROGRESS = 1

    # The rollout is being cancelled.
    CANCELLING = 2

    # The rollout is cancelled.
    CANCELLED = 3

    # The rollout has completed successfully.
    SUCCEEDED = 4
  end
end

#name::String

Returns Resource name.

Format: projects/{project_number}/locations/{location}/osPolicyAssignments/{os_policy_assignment_id}

This field is ignored when you create an OS policy assignment.

Returns:

  • (::String)

    Resource name.

    Format: projects/{project_number}/locations/{location}/osPolicyAssignments/{os_policy_assignment_id}

    This field is ignored when you create an OS policy assignment.



98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
# File 'proto_docs/google/cloud/osconfig/v1/os_policy_assignments.rb', line 98

class OSPolicyAssignment
  include ::Google::Protobuf::MessageExts
  extend ::Google::Protobuf::MessageExts::ClassMethods

  # Message representing label set.
  # * A label is a key value pair set for a VM.
  # * A LabelSet is a set of labels.
  # * Labels within a LabelSet are ANDed. In other words, a LabelSet is
  #   applicable for a VM only if it matches all the labels in the
  #   LabelSet.
  # * Example: A LabelSet with 2 labels: `env=prod` and `type=webserver` will
  #            only be applicable for those VMs with both labels
  #            present.
  # @!attribute [rw] labels
  #   @return [::Google::Protobuf::Map{::String => ::String}]
  #     Labels are identified by key/value pairs in this map.
  #     A VM should contain all the key/value pairs specified in this
  #     map to be selected.
  class LabelSet
    include ::Google::Protobuf::MessageExts
    extend ::Google::Protobuf::MessageExts::ClassMethods

    # @!attribute [rw] key
    #   @return [::String]
    # @!attribute [rw] value
    #   @return [::String]
    class LabelsEntry
      include ::Google::Protobuf::MessageExts
      extend ::Google::Protobuf::MessageExts::ClassMethods
    end
  end

  # Filters to select target VMs for an assignment.
  #
  # If more than one filter criteria is specified below, a VM will be selected
  # if and only if it satisfies all of them.
  # @!attribute [rw] all
  #   @return [::Boolean]
  #     Target all VMs in the project. If true, no other criteria is
  #     permitted.
  # @!attribute [rw] inclusion_labels
  #   @return [::Array<::Google::Cloud::OsConfig::V1::OSPolicyAssignment::LabelSet>]
  #     List of label sets used for VM inclusion.
  #
  #     If the list has more than one `LabelSet`, the VM is included if any
  #     of the label sets are applicable for the VM.
  # @!attribute [rw] exclusion_labels
  #   @return [::Array<::Google::Cloud::OsConfig::V1::OSPolicyAssignment::LabelSet>]
  #     List of label sets used for VM exclusion.
  #
  #     If the list has more than one label set, the VM is excluded if any
  #     of the label sets are applicable for the VM.
  # @!attribute [rw] inventories
  #   @return [::Array<::Google::Cloud::OsConfig::V1::OSPolicyAssignment::InstanceFilter::Inventory>]
  #     List of inventories to select VMs.
  #
  #     A VM is selected if its inventory data matches at least one of the
  #     following inventories.
  class InstanceFilter
    include ::Google::Protobuf::MessageExts
    extend ::Google::Protobuf::MessageExts::ClassMethods

    # VM inventory details.
    # @!attribute [rw] os_short_name
    #   @return [::String]
    #     Required. The OS short name
    # @!attribute [rw] os_version
    #   @return [::String]
    #     The OS version
    #
    #     Prefix matches are supported if asterisk(*) is provided as the
    #     last character. For example, to match all versions with a major
    #     version of `7`, specify the following value for this field `7.*`
    #
    #     An empty string matches all OS versions.
    class Inventory
      include ::Google::Protobuf::MessageExts
      extend ::Google::Protobuf::MessageExts::ClassMethods
    end
  end

  # Message to configure the rollout at the zonal level for the OS policy
  # assignment.
  # @!attribute [rw] disruption_budget
  #   @return [::Google::Cloud::OsConfig::V1::FixedOrPercent]
  #     Required. The maximum number (or percentage) of VMs per zone to disrupt
  #     at any given moment.
  # @!attribute [rw] min_wait_duration
  #   @return [::Google::Protobuf::Duration]
  #     Required. This determines the minimum duration of time to wait after the
  #     configuration changes are applied through the current rollout. A
  #     VM continues to count towards the `disruption_budget` at least
  #     until this duration of time has passed after configuration changes are
  #     applied.
  class Rollout
    include ::Google::Protobuf::MessageExts
    extend ::Google::Protobuf::MessageExts::ClassMethods
  end

  # OS policy assignment rollout state
  module RolloutState
    # Invalid value
    ROLLOUT_STATE_UNSPECIFIED = 0

    # The rollout is in progress.
    IN_PROGRESS = 1

    # The rollout is being cancelled.
    CANCELLING = 2

    # The rollout is cancelled.
    CANCELLED = 3

    # The rollout has completed successfully.
    SUCCEEDED = 4
  end
end

#os_policies::Array<::Google::Cloud::OsConfig::V1::OSPolicy>

Returns Required. List of OS policies to be applied to the VMs.

Returns:



98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
# File 'proto_docs/google/cloud/osconfig/v1/os_policy_assignments.rb', line 98

class OSPolicyAssignment
  include ::Google::Protobuf::MessageExts
  extend ::Google::Protobuf::MessageExts::ClassMethods

  # Message representing label set.
  # * A label is a key value pair set for a VM.
  # * A LabelSet is a set of labels.
  # * Labels within a LabelSet are ANDed. In other words, a LabelSet is
  #   applicable for a VM only if it matches all the labels in the
  #   LabelSet.
  # * Example: A LabelSet with 2 labels: `env=prod` and `type=webserver` will
  #            only be applicable for those VMs with both labels
  #            present.
  # @!attribute [rw] labels
  #   @return [::Google::Protobuf::Map{::String => ::String}]
  #     Labels are identified by key/value pairs in this map.
  #     A VM should contain all the key/value pairs specified in this
  #     map to be selected.
  class LabelSet
    include ::Google::Protobuf::MessageExts
    extend ::Google::Protobuf::MessageExts::ClassMethods

    # @!attribute [rw] key
    #   @return [::String]
    # @!attribute [rw] value
    #   @return [::String]
    class LabelsEntry
      include ::Google::Protobuf::MessageExts
      extend ::Google::Protobuf::MessageExts::ClassMethods
    end
  end

  # Filters to select target VMs for an assignment.
  #
  # If more than one filter criteria is specified below, a VM will be selected
  # if and only if it satisfies all of them.
  # @!attribute [rw] all
  #   @return [::Boolean]
  #     Target all VMs in the project. If true, no other criteria is
  #     permitted.
  # @!attribute [rw] inclusion_labels
  #   @return [::Array<::Google::Cloud::OsConfig::V1::OSPolicyAssignment::LabelSet>]
  #     List of label sets used for VM inclusion.
  #
  #     If the list has more than one `LabelSet`, the VM is included if any
  #     of the label sets are applicable for the VM.
  # @!attribute [rw] exclusion_labels
  #   @return [::Array<::Google::Cloud::OsConfig::V1::OSPolicyAssignment::LabelSet>]
  #     List of label sets used for VM exclusion.
  #
  #     If the list has more than one label set, the VM is excluded if any
  #     of the label sets are applicable for the VM.
  # @!attribute [rw] inventories
  #   @return [::Array<::Google::Cloud::OsConfig::V1::OSPolicyAssignment::InstanceFilter::Inventory>]
  #     List of inventories to select VMs.
  #
  #     A VM is selected if its inventory data matches at least one of the
  #     following inventories.
  class InstanceFilter
    include ::Google::Protobuf::MessageExts
    extend ::Google::Protobuf::MessageExts::ClassMethods

    # VM inventory details.
    # @!attribute [rw] os_short_name
    #   @return [::String]
    #     Required. The OS short name
    # @!attribute [rw] os_version
    #   @return [::String]
    #     The OS version
    #
    #     Prefix matches are supported if asterisk(*) is provided as the
    #     last character. For example, to match all versions with a major
    #     version of `7`, specify the following value for this field `7.*`
    #
    #     An empty string matches all OS versions.
    class Inventory
      include ::Google::Protobuf::MessageExts
      extend ::Google::Protobuf::MessageExts::ClassMethods
    end
  end

  # Message to configure the rollout at the zonal level for the OS policy
  # assignment.
  # @!attribute [rw] disruption_budget
  #   @return [::Google::Cloud::OsConfig::V1::FixedOrPercent]
  #     Required. The maximum number (or percentage) of VMs per zone to disrupt
  #     at any given moment.
  # @!attribute [rw] min_wait_duration
  #   @return [::Google::Protobuf::Duration]
  #     Required. This determines the minimum duration of time to wait after the
  #     configuration changes are applied through the current rollout. A
  #     VM continues to count towards the `disruption_budget` at least
  #     until this duration of time has passed after configuration changes are
  #     applied.
  class Rollout
    include ::Google::Protobuf::MessageExts
    extend ::Google::Protobuf::MessageExts::ClassMethods
  end

  # OS policy assignment rollout state
  module RolloutState
    # Invalid value
    ROLLOUT_STATE_UNSPECIFIED = 0

    # The rollout is in progress.
    IN_PROGRESS = 1

    # The rollout is being cancelled.
    CANCELLING = 2

    # The rollout is cancelled.
    CANCELLED = 3

    # The rollout has completed successfully.
    SUCCEEDED = 4
  end
end

#reconciling::Boolean (readonly)

Returns Output only. Indicates that reconciliation is in progress for the revision. This value is true when the rollout_state is one of:

  • IN_PROGRESS
  • CANCELLING.

Returns:

  • (::Boolean)

    Output only. Indicates that reconciliation is in progress for the revision. This value is true when the rollout_state is one of:

    • IN_PROGRESS
    • CANCELLING


98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
# File 'proto_docs/google/cloud/osconfig/v1/os_policy_assignments.rb', line 98

class OSPolicyAssignment
  include ::Google::Protobuf::MessageExts
  extend ::Google::Protobuf::MessageExts::ClassMethods

  # Message representing label set.
  # * A label is a key value pair set for a VM.
  # * A LabelSet is a set of labels.
  # * Labels within a LabelSet are ANDed. In other words, a LabelSet is
  #   applicable for a VM only if it matches all the labels in the
  #   LabelSet.
  # * Example: A LabelSet with 2 labels: `env=prod` and `type=webserver` will
  #            only be applicable for those VMs with both labels
  #            present.
  # @!attribute [rw] labels
  #   @return [::Google::Protobuf::Map{::String => ::String}]
  #     Labels are identified by key/value pairs in this map.
  #     A VM should contain all the key/value pairs specified in this
  #     map to be selected.
  class LabelSet
    include ::Google::Protobuf::MessageExts
    extend ::Google::Protobuf::MessageExts::ClassMethods

    # @!attribute [rw] key
    #   @return [::String]
    # @!attribute [rw] value
    #   @return [::String]
    class LabelsEntry
      include ::Google::Protobuf::MessageExts
      extend ::Google::Protobuf::MessageExts::ClassMethods
    end
  end

  # Filters to select target VMs for an assignment.
  #
  # If more than one filter criteria is specified below, a VM will be selected
  # if and only if it satisfies all of them.
  # @!attribute [rw] all
  #   @return [::Boolean]
  #     Target all VMs in the project. If true, no other criteria is
  #     permitted.
  # @!attribute [rw] inclusion_labels
  #   @return [::Array<::Google::Cloud::OsConfig::V1::OSPolicyAssignment::LabelSet>]
  #     List of label sets used for VM inclusion.
  #
  #     If the list has more than one `LabelSet`, the VM is included if any
  #     of the label sets are applicable for the VM.
  # @!attribute [rw] exclusion_labels
  #   @return [::Array<::Google::Cloud::OsConfig::V1::OSPolicyAssignment::LabelSet>]
  #     List of label sets used for VM exclusion.
  #
  #     If the list has more than one label set, the VM is excluded if any
  #     of the label sets are applicable for the VM.
  # @!attribute [rw] inventories
  #   @return [::Array<::Google::Cloud::OsConfig::V1::OSPolicyAssignment::InstanceFilter::Inventory>]
  #     List of inventories to select VMs.
  #
  #     A VM is selected if its inventory data matches at least one of the
  #     following inventories.
  class InstanceFilter
    include ::Google::Protobuf::MessageExts
    extend ::Google::Protobuf::MessageExts::ClassMethods

    # VM inventory details.
    # @!attribute [rw] os_short_name
    #   @return [::String]
    #     Required. The OS short name
    # @!attribute [rw] os_version
    #   @return [::String]
    #     The OS version
    #
    #     Prefix matches are supported if asterisk(*) is provided as the
    #     last character. For example, to match all versions with a major
    #     version of `7`, specify the following value for this field `7.*`
    #
    #     An empty string matches all OS versions.
    class Inventory
      include ::Google::Protobuf::MessageExts
      extend ::Google::Protobuf::MessageExts::ClassMethods
    end
  end

  # Message to configure the rollout at the zonal level for the OS policy
  # assignment.
  # @!attribute [rw] disruption_budget
  #   @return [::Google::Cloud::OsConfig::V1::FixedOrPercent]
  #     Required. The maximum number (or percentage) of VMs per zone to disrupt
  #     at any given moment.
  # @!attribute [rw] min_wait_duration
  #   @return [::Google::Protobuf::Duration]
  #     Required. This determines the minimum duration of time to wait after the
  #     configuration changes are applied through the current rollout. A
  #     VM continues to count towards the `disruption_budget` at least
  #     until this duration of time has passed after configuration changes are
  #     applied.
  class Rollout
    include ::Google::Protobuf::MessageExts
    extend ::Google::Protobuf::MessageExts::ClassMethods
  end

  # OS policy assignment rollout state
  module RolloutState
    # Invalid value
    ROLLOUT_STATE_UNSPECIFIED = 0

    # The rollout is in progress.
    IN_PROGRESS = 1

    # The rollout is being cancelled.
    CANCELLING = 2

    # The rollout is cancelled.
    CANCELLED = 3

    # The rollout has completed successfully.
    SUCCEEDED = 4
  end
end

#revision_create_time::Google::Protobuf::Timestamp (readonly)

Returns Output only. The timestamp that the revision was created.

Returns:



98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
# File 'proto_docs/google/cloud/osconfig/v1/os_policy_assignments.rb', line 98

class OSPolicyAssignment
  include ::Google::Protobuf::MessageExts
  extend ::Google::Protobuf::MessageExts::ClassMethods

  # Message representing label set.
  # * A label is a key value pair set for a VM.
  # * A LabelSet is a set of labels.
  # * Labels within a LabelSet are ANDed. In other words, a LabelSet is
  #   applicable for a VM only if it matches all the labels in the
  #   LabelSet.
  # * Example: A LabelSet with 2 labels: `env=prod` and `type=webserver` will
  #            only be applicable for those VMs with both labels
  #            present.
  # @!attribute [rw] labels
  #   @return [::Google::Protobuf::Map{::String => ::String}]
  #     Labels are identified by key/value pairs in this map.
  #     A VM should contain all the key/value pairs specified in this
  #     map to be selected.
  class LabelSet
    include ::Google::Protobuf::MessageExts
    extend ::Google::Protobuf::MessageExts::ClassMethods

    # @!attribute [rw] key
    #   @return [::String]
    # @!attribute [rw] value
    #   @return [::String]
    class LabelsEntry
      include ::Google::Protobuf::MessageExts
      extend ::Google::Protobuf::MessageExts::ClassMethods
    end
  end

  # Filters to select target VMs for an assignment.
  #
  # If more than one filter criteria is specified below, a VM will be selected
  # if and only if it satisfies all of them.
  # @!attribute [rw] all
  #   @return [::Boolean]
  #     Target all VMs in the project. If true, no other criteria is
  #     permitted.
  # @!attribute [rw] inclusion_labels
  #   @return [::Array<::Google::Cloud::OsConfig::V1::OSPolicyAssignment::LabelSet>]
  #     List of label sets used for VM inclusion.
  #
  #     If the list has more than one `LabelSet`, the VM is included if any
  #     of the label sets are applicable for the VM.
  # @!attribute [rw] exclusion_labels
  #   @return [::Array<::Google::Cloud::OsConfig::V1::OSPolicyAssignment::LabelSet>]
  #     List of label sets used for VM exclusion.
  #
  #     If the list has more than one label set, the VM is excluded if any
  #     of the label sets are applicable for the VM.
  # @!attribute [rw] inventories
  #   @return [::Array<::Google::Cloud::OsConfig::V1::OSPolicyAssignment::InstanceFilter::Inventory>]
  #     List of inventories to select VMs.
  #
  #     A VM is selected if its inventory data matches at least one of the
  #     following inventories.
  class InstanceFilter
    include ::Google::Protobuf::MessageExts
    extend ::Google::Protobuf::MessageExts::ClassMethods

    # VM inventory details.
    # @!attribute [rw] os_short_name
    #   @return [::String]
    #     Required. The OS short name
    # @!attribute [rw] os_version
    #   @return [::String]
    #     The OS version
    #
    #     Prefix matches are supported if asterisk(*) is provided as the
    #     last character. For example, to match all versions with a major
    #     version of `7`, specify the following value for this field `7.*`
    #
    #     An empty string matches all OS versions.
    class Inventory
      include ::Google::Protobuf::MessageExts
      extend ::Google::Protobuf::MessageExts::ClassMethods
    end
  end

  # Message to configure the rollout at the zonal level for the OS policy
  # assignment.
  # @!attribute [rw] disruption_budget
  #   @return [::Google::Cloud::OsConfig::V1::FixedOrPercent]
  #     Required. The maximum number (or percentage) of VMs per zone to disrupt
  #     at any given moment.
  # @!attribute [rw] min_wait_duration
  #   @return [::Google::Protobuf::Duration]
  #     Required. This determines the minimum duration of time to wait after the
  #     configuration changes are applied through the current rollout. A
  #     VM continues to count towards the `disruption_budget` at least
  #     until this duration of time has passed after configuration changes are
  #     applied.
  class Rollout
    include ::Google::Protobuf::MessageExts
    extend ::Google::Protobuf::MessageExts::ClassMethods
  end

  # OS policy assignment rollout state
  module RolloutState
    # Invalid value
    ROLLOUT_STATE_UNSPECIFIED = 0

    # The rollout is in progress.
    IN_PROGRESS = 1

    # The rollout is being cancelled.
    CANCELLING = 2

    # The rollout is cancelled.
    CANCELLED = 3

    # The rollout has completed successfully.
    SUCCEEDED = 4
  end
end

#revision_id::String (readonly)

Returns Output only. The assignment revision ID A new revision is committed whenever a rollout is triggered for a OS policy assignment.

Returns:

  • (::String)

    Output only. The assignment revision ID A new revision is committed whenever a rollout is triggered for a OS policy assignment



98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
# File 'proto_docs/google/cloud/osconfig/v1/os_policy_assignments.rb', line 98

class OSPolicyAssignment
  include ::Google::Protobuf::MessageExts
  extend ::Google::Protobuf::MessageExts::ClassMethods

  # Message representing label set.
  # * A label is a key value pair set for a VM.
  # * A LabelSet is a set of labels.
  # * Labels within a LabelSet are ANDed. In other words, a LabelSet is
  #   applicable for a VM only if it matches all the labels in the
  #   LabelSet.
  # * Example: A LabelSet with 2 labels: `env=prod` and `type=webserver` will
  #            only be applicable for those VMs with both labels
  #            present.
  # @!attribute [rw] labels
  #   @return [::Google::Protobuf::Map{::String => ::String}]
  #     Labels are identified by key/value pairs in this map.
  #     A VM should contain all the key/value pairs specified in this
  #     map to be selected.
  class LabelSet
    include ::Google::Protobuf::MessageExts
    extend ::Google::Protobuf::MessageExts::ClassMethods

    # @!attribute [rw] key
    #   @return [::String]
    # @!attribute [rw] value
    #   @return [::String]
    class LabelsEntry
      include ::Google::Protobuf::MessageExts
      extend ::Google::Protobuf::MessageExts::ClassMethods
    end
  end

  # Filters to select target VMs for an assignment.
  #
  # If more than one filter criteria is specified below, a VM will be selected
  # if and only if it satisfies all of them.
  # @!attribute [rw] all
  #   @return [::Boolean]
  #     Target all VMs in the project. If true, no other criteria is
  #     permitted.
  # @!attribute [rw] inclusion_labels
  #   @return [::Array<::Google::Cloud::OsConfig::V1::OSPolicyAssignment::LabelSet>]
  #     List of label sets used for VM inclusion.
  #
  #     If the list has more than one `LabelSet`, the VM is included if any
  #     of the label sets are applicable for the VM.
  # @!attribute [rw] exclusion_labels
  #   @return [::Array<::Google::Cloud::OsConfig::V1::OSPolicyAssignment::LabelSet>]
  #     List of label sets used for VM exclusion.
  #
  #     If the list has more than one label set, the VM is excluded if any
  #     of the label sets are applicable for the VM.
  # @!attribute [rw] inventories
  #   @return [::Array<::Google::Cloud::OsConfig::V1::OSPolicyAssignment::InstanceFilter::Inventory>]
  #     List of inventories to select VMs.
  #
  #     A VM is selected if its inventory data matches at least one of the
  #     following inventories.
  class InstanceFilter
    include ::Google::Protobuf::MessageExts
    extend ::Google::Protobuf::MessageExts::ClassMethods

    # VM inventory details.
    # @!attribute [rw] os_short_name
    #   @return [::String]
    #     Required. The OS short name
    # @!attribute [rw] os_version
    #   @return [::String]
    #     The OS version
    #
    #     Prefix matches are supported if asterisk(*) is provided as the
    #     last character. For example, to match all versions with a major
    #     version of `7`, specify the following value for this field `7.*`
    #
    #     An empty string matches all OS versions.
    class Inventory
      include ::Google::Protobuf::MessageExts
      extend ::Google::Protobuf::MessageExts::ClassMethods
    end
  end

  # Message to configure the rollout at the zonal level for the OS policy
  # assignment.
  # @!attribute [rw] disruption_budget
  #   @return [::Google::Cloud::OsConfig::V1::FixedOrPercent]
  #     Required. The maximum number (or percentage) of VMs per zone to disrupt
  #     at any given moment.
  # @!attribute [rw] min_wait_duration
  #   @return [::Google::Protobuf::Duration]
  #     Required. This determines the minimum duration of time to wait after the
  #     configuration changes are applied through the current rollout. A
  #     VM continues to count towards the `disruption_budget` at least
  #     until this duration of time has passed after configuration changes are
  #     applied.
  class Rollout
    include ::Google::Protobuf::MessageExts
    extend ::Google::Protobuf::MessageExts::ClassMethods
  end

  # OS policy assignment rollout state
  module RolloutState
    # Invalid value
    ROLLOUT_STATE_UNSPECIFIED = 0

    # The rollout is in progress.
    IN_PROGRESS = 1

    # The rollout is being cancelled.
    CANCELLING = 2

    # The rollout is cancelled.
    CANCELLED = 3

    # The rollout has completed successfully.
    SUCCEEDED = 4
  end
end

#rollout::Google::Cloud::OsConfig::V1::OSPolicyAssignment::Rollout

Returns Required. Rollout to deploy the OS policy assignment. A rollout is triggered in the following situations: 1) OSPolicyAssignment is created. 2) OSPolicyAssignment is updated and the update contains changes to one of the following fields:

  • instance_filter
  • os_policies 3) OSPolicyAssignment is deleted.

Returns:

  • (::Google::Cloud::OsConfig::V1::OSPolicyAssignment::Rollout)

    Required. Rollout to deploy the OS policy assignment. A rollout is triggered in the following situations: 1) OSPolicyAssignment is created. 2) OSPolicyAssignment is updated and the update contains changes to one of the following fields:

    • instance_filter
    • os_policies 3) OSPolicyAssignment is deleted.


98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
# File 'proto_docs/google/cloud/osconfig/v1/os_policy_assignments.rb', line 98

class OSPolicyAssignment
  include ::Google::Protobuf::MessageExts
  extend ::Google::Protobuf::MessageExts::ClassMethods

  # Message representing label set.
  # * A label is a key value pair set for a VM.
  # * A LabelSet is a set of labels.
  # * Labels within a LabelSet are ANDed. In other words, a LabelSet is
  #   applicable for a VM only if it matches all the labels in the
  #   LabelSet.
  # * Example: A LabelSet with 2 labels: `env=prod` and `type=webserver` will
  #            only be applicable for those VMs with both labels
  #            present.
  # @!attribute [rw] labels
  #   @return [::Google::Protobuf::Map{::String => ::String}]
  #     Labels are identified by key/value pairs in this map.
  #     A VM should contain all the key/value pairs specified in this
  #     map to be selected.
  class LabelSet
    include ::Google::Protobuf::MessageExts
    extend ::Google::Protobuf::MessageExts::ClassMethods

    # @!attribute [rw] key
    #   @return [::String]
    # @!attribute [rw] value
    #   @return [::String]
    class LabelsEntry
      include ::Google::Protobuf::MessageExts
      extend ::Google::Protobuf::MessageExts::ClassMethods
    end
  end

  # Filters to select target VMs for an assignment.
  #
  # If more than one filter criteria is specified below, a VM will be selected
  # if and only if it satisfies all of them.
  # @!attribute [rw] all
  #   @return [::Boolean]
  #     Target all VMs in the project. If true, no other criteria is
  #     permitted.
  # @!attribute [rw] inclusion_labels
  #   @return [::Array<::Google::Cloud::OsConfig::V1::OSPolicyAssignment::LabelSet>]
  #     List of label sets used for VM inclusion.
  #
  #     If the list has more than one `LabelSet`, the VM is included if any
  #     of the label sets are applicable for the VM.
  # @!attribute [rw] exclusion_labels
  #   @return [::Array<::Google::Cloud::OsConfig::V1::OSPolicyAssignment::LabelSet>]
  #     List of label sets used for VM exclusion.
  #
  #     If the list has more than one label set, the VM is excluded if any
  #     of the label sets are applicable for the VM.
  # @!attribute [rw] inventories
  #   @return [::Array<::Google::Cloud::OsConfig::V1::OSPolicyAssignment::InstanceFilter::Inventory>]
  #     List of inventories to select VMs.
  #
  #     A VM is selected if its inventory data matches at least one of the
  #     following inventories.
  class InstanceFilter
    include ::Google::Protobuf::MessageExts
    extend ::Google::Protobuf::MessageExts::ClassMethods

    # VM inventory details.
    # @!attribute [rw] os_short_name
    #   @return [::String]
    #     Required. The OS short name
    # @!attribute [rw] os_version
    #   @return [::String]
    #     The OS version
    #
    #     Prefix matches are supported if asterisk(*) is provided as the
    #     last character. For example, to match all versions with a major
    #     version of `7`, specify the following value for this field `7.*`
    #
    #     An empty string matches all OS versions.
    class Inventory
      include ::Google::Protobuf::MessageExts
      extend ::Google::Protobuf::MessageExts::ClassMethods
    end
  end

  # Message to configure the rollout at the zonal level for the OS policy
  # assignment.
  # @!attribute [rw] disruption_budget
  #   @return [::Google::Cloud::OsConfig::V1::FixedOrPercent]
  #     Required. The maximum number (or percentage) of VMs per zone to disrupt
  #     at any given moment.
  # @!attribute [rw] min_wait_duration
  #   @return [::Google::Protobuf::Duration]
  #     Required. This determines the minimum duration of time to wait after the
  #     configuration changes are applied through the current rollout. A
  #     VM continues to count towards the `disruption_budget` at least
  #     until this duration of time has passed after configuration changes are
  #     applied.
  class Rollout
    include ::Google::Protobuf::MessageExts
    extend ::Google::Protobuf::MessageExts::ClassMethods
  end

  # OS policy assignment rollout state
  module RolloutState
    # Invalid value
    ROLLOUT_STATE_UNSPECIFIED = 0

    # The rollout is in progress.
    IN_PROGRESS = 1

    # The rollout is being cancelled.
    CANCELLING = 2

    # The rollout is cancelled.
    CANCELLED = 3

    # The rollout has completed successfully.
    SUCCEEDED = 4
  end
end

#rollout_state::Google::Cloud::OsConfig::V1::OSPolicyAssignment::RolloutState (readonly)

Returns Output only. OS policy assignment rollout state.

Returns:



98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
# File 'proto_docs/google/cloud/osconfig/v1/os_policy_assignments.rb', line 98

class OSPolicyAssignment
  include ::Google::Protobuf::MessageExts
  extend ::Google::Protobuf::MessageExts::ClassMethods

  # Message representing label set.
  # * A label is a key value pair set for a VM.
  # * A LabelSet is a set of labels.
  # * Labels within a LabelSet are ANDed. In other words, a LabelSet is
  #   applicable for a VM only if it matches all the labels in the
  #   LabelSet.
  # * Example: A LabelSet with 2 labels: `env=prod` and `type=webserver` will
  #            only be applicable for those VMs with both labels
  #            present.
  # @!attribute [rw] labels
  #   @return [::Google::Protobuf::Map{::String => ::String}]
  #     Labels are identified by key/value pairs in this map.
  #     A VM should contain all the key/value pairs specified in this
  #     map to be selected.
  class LabelSet
    include ::Google::Protobuf::MessageExts
    extend ::Google::Protobuf::MessageExts::ClassMethods

    # @!attribute [rw] key
    #   @return [::String]
    # @!attribute [rw] value
    #   @return [::String]
    class LabelsEntry
      include ::Google::Protobuf::MessageExts
      extend ::Google::Protobuf::MessageExts::ClassMethods
    end
  end

  # Filters to select target VMs for an assignment.
  #
  # If more than one filter criteria is specified below, a VM will be selected
  # if and only if it satisfies all of them.
  # @!attribute [rw] all
  #   @return [::Boolean]
  #     Target all VMs in the project. If true, no other criteria is
  #     permitted.
  # @!attribute [rw] inclusion_labels
  #   @return [::Array<::Google::Cloud::OsConfig::V1::OSPolicyAssignment::LabelSet>]
  #     List of label sets used for VM inclusion.
  #
  #     If the list has more than one `LabelSet`, the VM is included if any
  #     of the label sets are applicable for the VM.
  # @!attribute [rw] exclusion_labels
  #   @return [::Array<::Google::Cloud::OsConfig::V1::OSPolicyAssignment::LabelSet>]
  #     List of label sets used for VM exclusion.
  #
  #     If the list has more than one label set, the VM is excluded if any
  #     of the label sets are applicable for the VM.
  # @!attribute [rw] inventories
  #   @return [::Array<::Google::Cloud::OsConfig::V1::OSPolicyAssignment::InstanceFilter::Inventory>]
  #     List of inventories to select VMs.
  #
  #     A VM is selected if its inventory data matches at least one of the
  #     following inventories.
  class InstanceFilter
    include ::Google::Protobuf::MessageExts
    extend ::Google::Protobuf::MessageExts::ClassMethods

    # VM inventory details.
    # @!attribute [rw] os_short_name
    #   @return [::String]
    #     Required. The OS short name
    # @!attribute [rw] os_version
    #   @return [::String]
    #     The OS version
    #
    #     Prefix matches are supported if asterisk(*) is provided as the
    #     last character. For example, to match all versions with a major
    #     version of `7`, specify the following value for this field `7.*`
    #
    #     An empty string matches all OS versions.
    class Inventory
      include ::Google::Protobuf::MessageExts
      extend ::Google::Protobuf::MessageExts::ClassMethods
    end
  end

  # Message to configure the rollout at the zonal level for the OS policy
  # assignment.
  # @!attribute [rw] disruption_budget
  #   @return [::Google::Cloud::OsConfig::V1::FixedOrPercent]
  #     Required. The maximum number (or percentage) of VMs per zone to disrupt
  #     at any given moment.
  # @!attribute [rw] min_wait_duration
  #   @return [::Google::Protobuf::Duration]
  #     Required. This determines the minimum duration of time to wait after the
  #     configuration changes are applied through the current rollout. A
  #     VM continues to count towards the `disruption_budget` at least
  #     until this duration of time has passed after configuration changes are
  #     applied.
  class Rollout
    include ::Google::Protobuf::MessageExts
    extend ::Google::Protobuf::MessageExts::ClassMethods
  end

  # OS policy assignment rollout state
  module RolloutState
    # Invalid value
    ROLLOUT_STATE_UNSPECIFIED = 0

    # The rollout is in progress.
    IN_PROGRESS = 1

    # The rollout is being cancelled.
    CANCELLING = 2

    # The rollout is cancelled.
    CANCELLED = 3

    # The rollout has completed successfully.
    SUCCEEDED = 4
  end
end

#uid::String (readonly)

Returns Output only. Server generated unique id for the OS policy assignment resource.

Returns:

  • (::String)

    Output only. Server generated unique id for the OS policy assignment resource.



98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
# File 'proto_docs/google/cloud/osconfig/v1/os_policy_assignments.rb', line 98

class OSPolicyAssignment
  include ::Google::Protobuf::MessageExts
  extend ::Google::Protobuf::MessageExts::ClassMethods

  # Message representing label set.
  # * A label is a key value pair set for a VM.
  # * A LabelSet is a set of labels.
  # * Labels within a LabelSet are ANDed. In other words, a LabelSet is
  #   applicable for a VM only if it matches all the labels in the
  #   LabelSet.
  # * Example: A LabelSet with 2 labels: `env=prod` and `type=webserver` will
  #            only be applicable for those VMs with both labels
  #            present.
  # @!attribute [rw] labels
  #   @return [::Google::Protobuf::Map{::String => ::String}]
  #     Labels are identified by key/value pairs in this map.
  #     A VM should contain all the key/value pairs specified in this
  #     map to be selected.
  class LabelSet
    include ::Google::Protobuf::MessageExts
    extend ::Google::Protobuf::MessageExts::ClassMethods

    # @!attribute [rw] key
    #   @return [::String]
    # @!attribute [rw] value
    #   @return [::String]
    class LabelsEntry
      include ::Google::Protobuf::MessageExts
      extend ::Google::Protobuf::MessageExts::ClassMethods
    end
  end

  # Filters to select target VMs for an assignment.
  #
  # If more than one filter criteria is specified below, a VM will be selected
  # if and only if it satisfies all of them.
  # @!attribute [rw] all
  #   @return [::Boolean]
  #     Target all VMs in the project. If true, no other criteria is
  #     permitted.
  # @!attribute [rw] inclusion_labels
  #   @return [::Array<::Google::Cloud::OsConfig::V1::OSPolicyAssignment::LabelSet>]
  #     List of label sets used for VM inclusion.
  #
  #     If the list has more than one `LabelSet`, the VM is included if any
  #     of the label sets are applicable for the VM.
  # @!attribute [rw] exclusion_labels
  #   @return [::Array<::Google::Cloud::OsConfig::V1::OSPolicyAssignment::LabelSet>]
  #     List of label sets used for VM exclusion.
  #
  #     If the list has more than one label set, the VM is excluded if any
  #     of the label sets are applicable for the VM.
  # @!attribute [rw] inventories
  #   @return [::Array<::Google::Cloud::OsConfig::V1::OSPolicyAssignment::InstanceFilter::Inventory>]
  #     List of inventories to select VMs.
  #
  #     A VM is selected if its inventory data matches at least one of the
  #     following inventories.
  class InstanceFilter
    include ::Google::Protobuf::MessageExts
    extend ::Google::Protobuf::MessageExts::ClassMethods

    # VM inventory details.
    # @!attribute [rw] os_short_name
    #   @return [::String]
    #     Required. The OS short name
    # @!attribute [rw] os_version
    #   @return [::String]
    #     The OS version
    #
    #     Prefix matches are supported if asterisk(*) is provided as the
    #     last character. For example, to match all versions with a major
    #     version of `7`, specify the following value for this field `7.*`
    #
    #     An empty string matches all OS versions.
    class Inventory
      include ::Google::Protobuf::MessageExts
      extend ::Google::Protobuf::MessageExts::ClassMethods
    end
  end

  # Message to configure the rollout at the zonal level for the OS policy
  # assignment.
  # @!attribute [rw] disruption_budget
  #   @return [::Google::Cloud::OsConfig::V1::FixedOrPercent]
  #     Required. The maximum number (or percentage) of VMs per zone to disrupt
  #     at any given moment.
  # @!attribute [rw] min_wait_duration
  #   @return [::Google::Protobuf::Duration]
  #     Required. This determines the minimum duration of time to wait after the
  #     configuration changes are applied through the current rollout. A
  #     VM continues to count towards the `disruption_budget` at least
  #     until this duration of time has passed after configuration changes are
  #     applied.
  class Rollout
    include ::Google::Protobuf::MessageExts
    extend ::Google::Protobuf::MessageExts::ClassMethods
  end

  # OS policy assignment rollout state
  module RolloutState
    # Invalid value
    ROLLOUT_STATE_UNSPECIFIED = 0

    # The rollout is in progress.
    IN_PROGRESS = 1

    # The rollout is being cancelled.
    CANCELLING = 2

    # The rollout is cancelled.
    CANCELLED = 3

    # The rollout has completed successfully.
    SUCCEEDED = 4
  end
end