Class: Google::Apis::OsconfigV1beta::SoftwareRecipe

Inherits:
Object
  • Object
show all
Includes:
Core::Hashable, Core::JsonObjectSupport
Defined in:
generated/google/apis/osconfig_v1beta/classes.rb,
generated/google/apis/osconfig_v1beta/representations.rb,
generated/google/apis/osconfig_v1beta/representations.rb

Overview

A software recipe is a set of instructions for installing and configuring a piece of software. It consists of a set of artifacts that are downloaded, and a set of steps that install, configure, and/or update the software. Recipes support installing and updating software from artifacts in the following formats: Zip archive, Tar archive, Windows MSI, Debian package, and RPM package. Additionally, recipes support executing a script (either defined in a file or directly in this api) in bash, sh, cmd, and powershell. Updating a software recipe If a recipe is assigned to an instance and there is a recipe with the same name but a lower version already installed and the assigned state of the recipe is INSTALLED_KEEP_UPDATED, then the recipe is updated to the new version. Script Working Directories Each script or execution step is run in its own temporary directory which is deleted after completing the step.

Instance Attribute Summary collapse

Instance Method Summary collapse

Methods included from Core::JsonObjectSupport

#to_json

Methods included from Core::Hashable

process_value, #to_h

Constructor Details

#initialize(**args) ⇒ SoftwareRecipe

Returns a new instance of SoftwareRecipe.



1613
1614
1615
# File 'generated/google/apis/osconfig_v1beta/classes.rb', line 1613

def initialize(**args)
   update!(**args)
end

Instance Attribute Details

#artifactsArray<Google::Apis::OsconfigV1beta::SoftwareRecipeArtifact>

Resources available to be used in the steps in the recipe. Corresponds to the JSON property artifacts



1566
1567
1568
# File 'generated/google/apis/osconfig_v1beta/classes.rb', line 1566

def artifacts
  @artifacts
end

#desired_stateString

Default is INSTALLED. The desired state the agent should maintain for this recipe. INSTALLED: The software recipe is installed on the instance but won't be updated to new versions. INSTALLED_KEEP_UPDATED: The software recipe is installed on the instance. The recipe is updated to a higher version, if a higher version of the recipe is assigned to this instance. REMOVE: Remove is unsupported for software recipes and attempts to create or update a recipe to the REMOVE state is rejected. Corresponds to the JSON property desiredState

Returns:

  • (String)


1580
1581
1582
# File 'generated/google/apis/osconfig_v1beta/classes.rb', line 1580

def desired_state
  @desired_state
end

#install_stepsArray<Google::Apis::OsconfigV1beta::SoftwareRecipeStep>

Actions to be taken for installing this recipe. On failure it stops executing steps and does not attempt another installation. Any steps taken (including partially completed steps) are not rolled back. Corresponds to the JSON property installSteps



1587
1588
1589
# File 'generated/google/apis/osconfig_v1beta/classes.rb', line 1587

def install_steps
  @install_steps
end

#nameString

Required. Unique identifier for the recipe. Only one recipe with a given name is installed on an instance. Names are also used to identify resources which helps to determine whether guest policies have conflicts. This means that requests to create multiple recipes with the same name and version are rejected since they could potentially have conflicting assignments. Corresponds to the JSON property name

Returns:

  • (String)


1598
1599
1600
# File 'generated/google/apis/osconfig_v1beta/classes.rb', line 1598

def name
  @name
end

#update_stepsArray<Google::Apis::OsconfigV1beta::SoftwareRecipeStep>

Actions to be taken for updating this recipe. On failure it stops executing steps and does not attempt another update for this recipe. Any steps taken (including partially completed steps) are not rolled back. Corresponds to the JSON property updateSteps



1605
1606
1607
# File 'generated/google/apis/osconfig_v1beta/classes.rb', line 1605

def update_steps
  @update_steps
end

#versionString

The version of this software recipe. Version can be up to 4 period separated numbers (e.g. 12.34.56.78). Corresponds to the JSON property version

Returns:

  • (String)


1611
1612
1613
# File 'generated/google/apis/osconfig_v1beta/classes.rb', line 1611

def version
  @version
end

Instance Method Details

#update!(**args) ⇒ Object

Update properties of this object



1618
1619
1620
1621
1622
1623
1624
1625
# File 'generated/google/apis/osconfig_v1beta/classes.rb', line 1618

def update!(**args)
  @artifacts = args[:artifacts] if args.key?(:artifacts)
  @desired_state = args[:desired_state] if args.key?(:desired_state)
  @install_steps = args[:install_steps] if args.key?(:install_steps)
  @name = args[:name] if args.key?(:name)
  @update_steps = args[:update_steps] if args.key?(:update_steps)
  @version = args[:version] if args.key?(:version)
end