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

exec[RW]

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]

file[RW]

A resource that manages the state of a file. Corresponds to the JSON property `file` @return [Google::Apis::OsconfigV1alpha::OsPolicyResourceFileResource]

id[RW]

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]

pkg[RW]

A resource that manages a system package. Corresponds to the JSON property `pkg` @return [Google::Apis::OsconfigV1alpha::OsPolicyResourcePackageResource]

repository[RW]

A resource that manages a package repository. Corresponds to the JSON property `repository` @return [Google::Apis::OsconfigV1alpha::OsPolicyResourceRepositoryResource]

Public Class Methods

new(**args) click to toggle source
# File lib/google/apis/osconfig_v1alpha/classes.rb, line 1421
def initialize(**args)
   update!(**args)
end

Public Instance Methods

update!(**args) click to toggle source

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