class Google::Apis::OsconfigV1alpha::OsPolicyResource
An OS policy resource is used to define the desired state configuration and provides a specific functionality like installing/removing packages, executing a script etc. The system ensures that resources are always in their desired state by taking necessary actions if they have drifted from their desired state.
Attributes
A resource that allows executing scripts on the VM. The `ExecResource` has 2 stages: `validate` and `enforce` and both stages accept a script as an argument to execute. When the `ExecResource` is applied by the agent, it first executes the script in the `validate` stage. The `validate` stage can signal that the `ExecResource` is already in the desired state by returning an exit code of `100`. If the `ExecResource` is not in the desired state, it should return an exit code of `101`. Any other exit code returned by this stage is considered an error. If the `ExecResource` is not in the desired state based on the exit code from the `validate` stage, the agent proceeds to execute the script from the `enforce` stage. If the `ExecResource` is already in the desired state, the `enforce` stage will not be run. Similar to `validate` stage, the `enforce` stage should return an exit code of `100` to indicate that the resource in now in its desired state. Any other exit code is considered an error. NOTE: An exit code of `100` was chosen over `0` (and `101` vs `1`) to have an explicit indicator of `in desired state`, `not in desired state` and errors. Because, for example, Powershell will always return an exit code of `0` unless an `exit` statement is provided in the script. So, for reasons of consistency and being explicit, exit codes `100` and `101` were chosen. Corresponds to the JSON property `exec` @return [Google::Apis::OsconfigV1alpha::OsPolicyResourceExecResource]
A resource that manages the state of a file. Corresponds to the JSON property `file` @return [Google::Apis::OsconfigV1alpha::OsPolicyResourceFileResource]
Required. The id of the resource with the following restrictions: * Must contain only lowercase letters, numbers, and hyphens. * Must start with a letter. * Must be between 1-63 characters. * Must end with a number or a letter. * Must be unique within the OS policy. Corresponds to the JSON property `id` @return [String]
A resource that manages a system package. Corresponds to the JSON property `pkg` @return [Google::Apis::OsconfigV1alpha::OsPolicyResourcePackageResource]
A resource that manages a package repository. Corresponds to the JSON property `repository` @return [Google::Apis::OsconfigV1alpha::OsPolicyResourceRepositoryResource]
Public Class Methods
# File lib/google/apis/osconfig_v1alpha/classes.rb, line 1421 def initialize(**args) update!(**args) end
Public Instance Methods
Update properties of this object
# File lib/google/apis/osconfig_v1alpha/classes.rb, line 1426 def update!(**args) @exec = args[:exec] if args.key?(:exec) @file = args[:file] if args.key?(:file) @id = args[:id] if args.key?(:id) @pkg = args[:pkg] if args.key?(:pkg) @repository = args[:repository] if args.key?(:repository) end