Class: Google::Apis::OsconfigV1alpha::OsPolicyResource

Inherits:
Object
  • Object
show all
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

Instance Method Summary collapse

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

#execGoogle::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

#fileGoogle::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

#idString

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

Returns:

  • (String)


1691
1692
1693
# File 'lib/google/apis/osconfig_v1alpha/classes.rb', line 1691

def id
  @id
end

#pkgGoogle::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

#repositoryGoogle::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