Class: Google::Apis::OsconfigV1alpha::OsPolicyResource
- Inherits:
-
Object
- Object
- Google::Apis::OsconfigV1alpha::OsPolicyResource
- Includes:
- Core::Hashable, Core::JsonObjectSupport
- Defined in:
- lib/google/apis/osconfig_v1alpha/classes.rb,
lib/google/apis/osconfig_v1alpha/representations.rb,
lib/google/apis/osconfig_v1alpha/representations.rb
Overview
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.
Instance Attribute Summary collapse
-
#exec ⇒ Google::Apis::OsconfigV1alpha::OsPolicyResourceExecResource
A resource that allows executing scripts on the VM.
-
#file ⇒ Google::Apis::OsconfigV1alpha::OsPolicyResourceFileResource
A resource that manages the state of a file.
-
#id ⇒ String
Required.
-
#pkg ⇒ Google::Apis::OsconfigV1alpha::OsPolicyResourcePackageResource
A resource that manages a system package.
-
#repository ⇒ Google::Apis::OsconfigV1alpha::OsPolicyResourceRepositoryResource
A resource that manages a package repository.
Instance Method Summary collapse
-
#initialize(**args) ⇒ OsPolicyResource
constructor
A new instance of OsPolicyResource.
-
#update!(**args) ⇒ Object
Update properties of this object.
Constructor Details
#initialize(**args) ⇒ OsPolicyResource
Returns a new instance of OsPolicyResource.
1703 1704 1705 |
# File 'lib/google/apis/osconfig_v1alpha/classes.rb', line 1703 def initialize(**args) update!(**args) end |
Instance Attribute Details
#exec ⇒ Google::Apis::OsconfigV1alpha::OsPolicyResourceExecResource
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
1678 1679 1680 |
# File 'lib/google/apis/osconfig_v1alpha/classes.rb', line 1678 def exec @exec end |
#file ⇒ Google::Apis::OsconfigV1alpha::OsPolicyResourceFileResource
A resource that manages the state of a file.
Corresponds to the JSON property file
1683 1684 1685 |
# File 'lib/google/apis/osconfig_v1alpha/classes.rb', line 1683 def file @file end |
#id ⇒ String
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
1691 1692 1693 |
# File 'lib/google/apis/osconfig_v1alpha/classes.rb', line 1691 def id @id end |
#pkg ⇒ Google::Apis::OsconfigV1alpha::OsPolicyResourcePackageResource
A resource that manages a system package.
Corresponds to the JSON property pkg
1696 1697 1698 |
# File 'lib/google/apis/osconfig_v1alpha/classes.rb', line 1696 def pkg @pkg end |
#repository ⇒ Google::Apis::OsconfigV1alpha::OsPolicyResourceRepositoryResource
A resource that manages a package repository.
Corresponds to the JSON property repository
1701 1702 1703 |
# File 'lib/google/apis/osconfig_v1alpha/classes.rb', line 1701 def repository @repository end |
Instance Method Details
#update!(**args) ⇒ Object
Update properties of this object
1708 1709 1710 1711 1712 1713 1714 |
# File 'lib/google/apis/osconfig_v1alpha/classes.rb', line 1708 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 |