diff --git a/provider/cmd/pulumi-resource-spotinst/schema.json b/provider/cmd/pulumi-resource-spotinst/schema.json index 49670a4a..1f56b138 100644 --- a/provider/cmd/pulumi-resource-spotinst/schema.json +++ b/provider/cmd/pulumi-resource-spotinst/schema.json @@ -18848,7 +18848,7 @@ } }, "spotinst:ecs/ocean:Ocean": { - "description": "Manages a Spotinst Ocean ECS resource.\n\n{{% examples %}}\n## Example Usage\n{{% example %}}\n\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as spotinst from \"@pulumi/spotinst\";\n\nconst example = new spotinst.ecs.Ocean(\"example\", {\n associatePublicIpAddress: false,\n blockDeviceMappings: [{\n deviceName: \"/dev/xvda1\",\n ebs: {\n deleteOnTermination: true,\n dynamicVolumeSize: {\n baseSize: 50,\n resource: \"CPU\",\n sizePerResourceUnit: 20,\n },\n encrypted: false,\n throughput: 500,\n volumeSize: 50,\n volumeType: \"gp2\",\n },\n }],\n clusterName: \"sample-ecs-cluster\",\n desiredCapacity: 0,\n drainingTimeout: 120,\n ebsOptimized: true,\n iamInstanceProfile: \"iam-profile\",\n imageId: \"ami-12345\",\n instanceMetadataOptions: {\n httpPutResponseHopLimit: 10,\n httpTokens: \"required\",\n },\n keyPair: \"KeyPair\",\n logging: {\n export: {\n s3s: [{\n id: \"di-abcd123\",\n }],\n },\n },\n maxSize: 1,\n minSize: 0,\n monitoring: true,\n optimizeImages: {\n performAt: \"timeWindow\",\n shouldOptimizeEcsAmi: true,\n timeWindows: [\n \"Sun:02:00-Sun:12:00\",\n \"Sun:05:00-Sun:16:00\",\n ],\n },\n region: \"us-west-2\",\n securityGroupIds: [\"sg-12345\"],\n spotPercentage: 100,\n subnetIds: [\"subnet-12345\"],\n tags: [{\n key: \"fakeKey\",\n value: \"fakeValue\",\n }],\n userData: \"echo hello world\",\n utilizeCommitments: false,\n utilizeReservedInstances: false,\n whitelists: [\"t3.medium\"],\n});\n```\n```python\nimport pulumi\nimport pulumi_spotinst as spotinst\n\nexample = spotinst.ecs.Ocean(\"example\",\n associate_public_ip_address=False,\n block_device_mappings=[spotinst.ecs.OceanBlockDeviceMappingArgs(\n device_name=\"/dev/xvda1\",\n ebs=spotinst.ecs.OceanBlockDeviceMappingEbsArgs(\n delete_on_termination=True,\n dynamic_volume_size=spotinst.ecs.OceanBlockDeviceMappingEbsDynamicVolumeSizeArgs(\n base_size=50,\n resource=\"CPU\",\n size_per_resource_unit=20,\n ),\n encrypted=False,\n throughput=500,\n volume_size=50,\n volume_type=\"gp2\",\n ),\n )],\n cluster_name=\"sample-ecs-cluster\",\n desired_capacity=0,\n draining_timeout=120,\n ebs_optimized=True,\n iam_instance_profile=\"iam-profile\",\n image_id=\"ami-12345\",\n instance_metadata_options=spotinst.ecs.OceanInstanceMetadataOptionsArgs(\n http_put_response_hop_limit=10,\n http_tokens=\"required\",\n ),\n key_pair=\"KeyPair\",\n logging=spotinst.ecs.OceanLoggingArgs(\n export=spotinst.ecs.OceanLoggingExportArgs(\n s3=[{\n \"id\": \"di-abcd123\",\n }],\n ),\n ),\n max_size=1,\n min_size=0,\n monitoring=True,\n optimize_images=spotinst.ecs.OceanOptimizeImagesArgs(\n perform_at=\"timeWindow\",\n should_optimize_ecs_ami=True,\n time_windows=[\n \"Sun:02:00-Sun:12:00\",\n \"Sun:05:00-Sun:16:00\",\n ],\n ),\n region=\"us-west-2\",\n security_group_ids=[\"sg-12345\"],\n spot_percentage=100,\n subnet_ids=[\"subnet-12345\"],\n tags=[spotinst.ecs.OceanTagArgs(\n key=\"fakeKey\",\n value=\"fakeValue\",\n )],\n user_data=\"echo hello world\",\n utilize_commitments=False,\n utilize_reserved_instances=False,\n whitelists=[\"t3.medium\"])\n```\n```csharp\nusing Pulumi;\nusing SpotInst = Pulumi.SpotInst;\n\nclass MyStack : Stack\n{\n public MyStack()\n {\n var example = new SpotInst.Ecs.Ocean(\"example\", new SpotInst.Ecs.OceanArgs\n {\n AssociatePublicIpAddress = false,\n BlockDeviceMappings = \n {\n new SpotInst.Ecs.Inputs.OceanBlockDeviceMappingArgs\n {\n DeviceName = \"/dev/xvda1\",\n Ebs = new SpotInst.Ecs.Inputs.OceanBlockDeviceMappingEbsArgs\n {\n DeleteOnTermination = true,\n DynamicVolumeSize = new SpotInst.Ecs.Inputs.OceanBlockDeviceMappingEbsDynamicVolumeSizeArgs\n {\n BaseSize = 50,\n Resource = \"CPU\",\n SizePerResourceUnit = 20,\n },\n Encrypted = false,\n Throughput = 500,\n VolumeSize = 50,\n VolumeType = \"gp2\",\n },\n },\n },\n ClusterName = \"sample-ecs-cluster\",\n DesiredCapacity = 0,\n DrainingTimeout = 120,\n EbsOptimized = true,\n IamInstanceProfile = \"iam-profile\",\n ImageId = \"ami-12345\",\n InstanceMetadataOptions = new SpotInst.Ecs.Inputs.OceanInstanceMetadataOptionsArgs\n {\n HttpPutResponseHopLimit = 10,\n HttpTokens = \"required\",\n },\n KeyPair = \"KeyPair\",\n Logging = new SpotInst.Ecs.Inputs.OceanLoggingArgs\n {\n Export = new SpotInst.Ecs.Inputs.OceanLoggingExportArgs\n {\n S3 = \n {\n \n {\n { \"id\", \"di-abcd123\" },\n },\n },\n },\n },\n MaxSize = 1,\n MinSize = 0,\n Monitoring = true,\n OptimizeImages = new SpotInst.Ecs.Inputs.OceanOptimizeImagesArgs\n {\n PerformAt = \"timeWindow\",\n ShouldOptimizeEcsAmi = true,\n TimeWindows = \n {\n \"Sun:02:00-Sun:12:00\",\n \"Sun:05:00-Sun:16:00\",\n },\n },\n Region = \"us-west-2\",\n SecurityGroupIds = \n {\n \"sg-12345\",\n },\n SpotPercentage = 100,\n SubnetIds = \n {\n \"subnet-12345\",\n },\n Tags = \n {\n new SpotInst.Ecs.Inputs.OceanTagArgs\n {\n Key = \"fakeKey\",\n Value = \"fakeValue\",\n },\n },\n UserData = \"echo hello world\",\n UtilizeCommitments = false,\n UtilizeReservedInstances = false,\n Whitelists = \n {\n \"t3.medium\",\n },\n });\n }\n\n}\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-spotinst/sdk/v3/go/spotinst/ecs\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\t_, err := ecs.NewOcean(ctx, \"example\", \u0026ecs.OceanArgs{\n\t\t\tAssociatePublicIpAddress: pulumi.Bool(false),\n\t\t\tBlockDeviceMappings: ecs.OceanBlockDeviceMappingArray{\n\t\t\t\t\u0026ecs.OceanBlockDeviceMappingArgs{\n\t\t\t\t\tDeviceName: pulumi.String(\"/dev/xvda1\"),\n\t\t\t\t\tEbs: \u0026ecs.OceanBlockDeviceMappingEbsArgs{\n\t\t\t\t\t\tDeleteOnTermination: pulumi.Bool(true),\n\t\t\t\t\t\tDynamicVolumeSize: \u0026ecs.OceanBlockDeviceMappingEbsDynamicVolumeSizeArgs{\n\t\t\t\t\t\t\tBaseSize: pulumi.Int(50),\n\t\t\t\t\t\t\tResource: pulumi.String(\"CPU\"),\n\t\t\t\t\t\t\tSizePerResourceUnit: pulumi.Int(20),\n\t\t\t\t\t\t},\n\t\t\t\t\t\tEncrypted: pulumi.Bool(false),\n\t\t\t\t\t\tThroughput: pulumi.Int(500),\n\t\t\t\t\t\tVolumeSize: pulumi.Int(50),\n\t\t\t\t\t\tVolumeType: pulumi.String(\"gp2\"),\n\t\t\t\t\t},\n\t\t\t\t},\n\t\t\t},\n\t\t\tClusterName: pulumi.String(\"sample-ecs-cluster\"),\n\t\t\tDesiredCapacity: pulumi.Int(0),\n\t\t\tDrainingTimeout: pulumi.Int(120),\n\t\t\tEbsOptimized: pulumi.Bool(true),\n\t\t\tIamInstanceProfile: pulumi.String(\"iam-profile\"),\n\t\t\tImageId: pulumi.String(\"ami-12345\"),\n\t\t\tInstanceMetadataOptions: \u0026ecs.OceanInstanceMetadataOptionsArgs{\n\t\t\t\tHttpPutResponseHopLimit: pulumi.Int(10),\n\t\t\t\tHttpTokens: pulumi.String(\"required\"),\n\t\t\t},\n\t\t\tKeyPair: pulumi.String(\"KeyPair\"),\n\t\t\tLogging: \u0026ecs.OceanLoggingArgs{\n\t\t\t\tExport: \u0026ecs.OceanLoggingExportArgs{\n\t\t\t\t\tS3: []map[string]interface{}{\n\t\t\t\t\t\tmap[string]interface{}{\n\t\t\t\t\t\t\t\"id\": \"di-abcd123\",\n\t\t\t\t\t\t},\n\t\t\t\t\t},\n\t\t\t\t},\n\t\t\t},\n\t\t\tMaxSize: pulumi.Int(1),\n\t\t\tMinSize: pulumi.Int(0),\n\t\t\tMonitoring: pulumi.Bool(true),\n\t\t\tOptimizeImages: \u0026ecs.OceanOptimizeImagesArgs{\n\t\t\t\tPerformAt: pulumi.String(\"timeWindow\"),\n\t\t\t\tShouldOptimizeEcsAmi: pulumi.Bool(true),\n\t\t\t\tTimeWindows: pulumi.StringArray{\n\t\t\t\t\tpulumi.String(\"Sun:02:00-Sun:12:00\"),\n\t\t\t\t\tpulumi.String(\"Sun:05:00-Sun:16:00\"),\n\t\t\t\t},\n\t\t\t},\n\t\t\tRegion: pulumi.String(\"us-west-2\"),\n\t\t\tSecurityGroupIds: pulumi.StringArray{\n\t\t\t\tpulumi.String(\"sg-12345\"),\n\t\t\t},\n\t\t\tSpotPercentage: pulumi.Int(100),\n\t\t\tSubnetIds: pulumi.StringArray{\n\t\t\t\tpulumi.String(\"subnet-12345\"),\n\t\t\t},\n\t\t\tTags: ecs.OceanTagArray{\n\t\t\t\t\u0026ecs.OceanTagArgs{\n\t\t\t\t\tKey: pulumi.String(\"fakeKey\"),\n\t\t\t\t\tValue: pulumi.String(\"fakeValue\"),\n\t\t\t\t},\n\t\t\t},\n\t\t\tUserData: pulumi.String(\"echo hello world\"),\n\t\t\tUtilizeCommitments: pulumi.Bool(false),\n\t\t\tUtilizeReservedInstances: pulumi.Bool(false),\n\t\t\tWhitelists: pulumi.StringArray{\n\t\t\t\tpulumi.String(\"t3.medium\"),\n\t\t\t},\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport java.util.*;\nimport java.io.*;\nimport java.nio.*;\nimport com.pulumi.*;\n\npublic class App {\n public static void main(String[] args) {\n Pulumi.run(App::stack);\n }\n\n public static void stack(Context ctx) {\n var example = new Ocean(\"example\", OceanArgs.builder() \n .associatePublicIpAddress(false)\n .blockDeviceMappings(OceanBlockDeviceMappingArgs.builder()\n .deviceName(\"/dev/xvda1\")\n .ebs(OceanBlockDeviceMappingEbsArgs.builder()\n .deleteOnTermination(\"true\")\n .dynamicVolumeSize(OceanBlockDeviceMappingEbsDynamicVolumeSizeArgs.builder()\n .baseSize(50)\n .resource(\"CPU\")\n .sizePerResourceUnit(20)\n .build())\n .encrypted(\"false\")\n .throughput(500)\n .volumeSize(50)\n .volumeType(\"gp2\")\n .build())\n .build())\n .clusterName(\"sample-ecs-cluster\")\n .desiredCapacity(\"0\")\n .drainingTimeout(120)\n .ebsOptimized(true)\n .iamInstanceProfile(\"iam-profile\")\n .imageId(\"ami-12345\")\n .instanceMetadataOptions(OceanInstanceMetadataOptionsArgs.builder()\n .httpPutResponseHopLimit(10)\n .httpTokens(\"required\")\n .build())\n .keyPair(\"KeyPair\")\n .logging(OceanLoggingArgs.builder()\n .export(OceanLoggingExportArgs.builder()\n .s3(%!v(PANIC=Format method: runtime error: invalid memory address or nil pointer dereference))\n .build())\n .build())\n .maxSize(\"1\")\n .minSize(\"0\")\n .monitoring(true)\n .optimizeImages(OceanOptimizeImagesArgs.builder()\n .performAt(\"timeWindow\")\n .shouldOptimizeEcsAmi(true)\n .timeWindows( \n \"Sun:02:00-Sun:12:00\",\n \"Sun:05:00-Sun:16:00\")\n .build())\n .region(\"us-west-2\")\n .securityGroupIds(\"sg-12345\")\n .spotPercentage(100)\n .subnetIds(\"subnet-12345\")\n .tags(OceanTagArgs.builder()\n .key(\"fakeKey\")\n .value(\"fakeValue\")\n .build())\n .userData(\"echo hello world\")\n .utilizeCommitments(false)\n .utilizeReservedInstances(false)\n .whitelists(\"t3.medium\")\n .build());\n\n }\n}\n```\n```yaml\nresources:\n example:\n type: spotinst:ecs:Ocean\n properties:\n associatePublicIpAddress: false\n blockDeviceMappings:\n - deviceName: /dev/xvda1\n ebs:\n deleteOnTermination: true\n dynamicVolumeSize:\n baseSize: 50\n resource: CPU\n sizePerResourceUnit: 20\n encrypted: false\n throughput: 500\n volumeSize: 50\n volumeType: gp2\n clusterName: sample-ecs-cluster\n desiredCapacity: 0\n drainingTimeout: 120\n ebsOptimized: true\n iamInstanceProfile: iam-profile\n imageId: ami-12345\n instanceMetadataOptions:\n httpPutResponseHopLimit: 10\n httpTokens: required\n keyPair: KeyPair\n logging:\n export:\n s3:\n - id: di-abcd123\n maxSize: 1\n minSize: 0\n monitoring: true\n optimizeImages:\n performAt: timeWindow\n shouldOptimizeEcsAmi: true\n timeWindows:\n - Sun:02:00-Sun:12:00\n - Sun:05:00-Sun:16:00\n region: us-west-2\n securityGroupIds:\n - sg-12345\n spotPercentage: 100\n subnetIds:\n - subnet-12345\n tags:\n - key: fakeKey\n value: fakeValue\n userData: echo hello world\n utilizeCommitments: false\n utilizeReservedInstances: false\n whitelists:\n - t3.medium\n```\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\n\nexport const oceanId = spotinst_ocean_ecs.example.id;\n```\n```python\nimport pulumi\n\npulumi.export(\"oceanId\", spotinst_ocean_ecs[\"example\"][\"id\"])\n```\n```csharp\nusing Pulumi;\n\nclass MyStack : Stack\n{\n public MyStack()\n {\n this.OceanId = spotinst_ocean_ecs.Example.Id;\n }\n\n [Output(\"oceanId\")]\n public Output\u003cstring\u003e OceanId { get; set; }\n}\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\tctx.Export(\"oceanId\", spotinst_ocean_ecs.Example.Id)\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport java.util.*;\nimport java.io.*;\nimport java.nio.*;\nimport com.pulumi.*;\n\npublic class App {\n public static void main(String[] args) {\n Pulumi.run(App::stack);\n }\n\n public static void stack(Context ctx) {\n ctx.export(\"oceanId\", spotinst_ocean_ecs.example().id());\n }\n}\n```\n```yaml\noutputs:\n oceanId: ${spotinst_ocean_ecs.example.id}\n```\n{{% /example %}}\n{{% /examples %}}", + "description": "Manages a Spotinst Ocean ECS resource.\n\n{{% examples %}}\n## Example Usage\n{{% example %}}\n\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as spotinst from \"@pulumi/spotinst\";\n\nconst example = new spotinst.ecs.Ocean(\"example\", {\n associatePublicIpAddress: false,\n blockDeviceMappings: [{\n deviceName: \"/dev/xvda1\",\n ebs: {\n deleteOnTermination: true,\n dynamicVolumeSize: {\n baseSize: 50,\n resource: \"CPU\",\n sizePerResourceUnit: 20,\n },\n encrypted: false,\n throughput: 500,\n volumeSize: 50,\n volumeType: \"gp2\",\n },\n }],\n clusterName: \"sample-ecs-cluster\",\n desiredCapacity: 0,\n drainingTimeout: 120,\n ebsOptimized: true,\n iamInstanceProfile: \"iam-profile\",\n imageId: \"ami-12345\",\n instanceMetadataOptions: {\n httpPutResponseHopLimit: 10,\n httpTokens: \"required\",\n },\n keyPair: \"KeyPair\",\n logging: {\n export: {\n s3s: [{\n id: \"di-abcd123\",\n }],\n },\n },\n maxSize: 1,\n minSize: 0,\n monitoring: true,\n optimizeImages: {\n performAt: \"timeWindow\",\n shouldOptimizeEcsAmi: true,\n timeWindows: [\n \"Sun:02:00-Sun:12:00\",\n \"Sun:05:00-Sun:16:00\",\n ],\n },\n region: \"us-west-2\",\n securityGroupIds: [\"sg-12345\"],\n spotPercentage: 100,\n subnetIds: [\"subnet-12345\"],\n tags: [{\n key: \"fakeKey\",\n value: \"fakeValue\",\n }],\n useAsTemplateOnly: true,\n userData: \"echo hello world\",\n utilizeCommitments: false,\n utilizeReservedInstances: false,\n whitelists: [\"t3.medium\"],\n});\n```\n```python\nimport pulumi\nimport pulumi_spotinst as spotinst\n\nexample = spotinst.ecs.Ocean(\"example\",\n associate_public_ip_address=False,\n block_device_mappings=[spotinst.ecs.OceanBlockDeviceMappingArgs(\n device_name=\"/dev/xvda1\",\n ebs=spotinst.ecs.OceanBlockDeviceMappingEbsArgs(\n delete_on_termination=True,\n dynamic_volume_size=spotinst.ecs.OceanBlockDeviceMappingEbsDynamicVolumeSizeArgs(\n base_size=50,\n resource=\"CPU\",\n size_per_resource_unit=20,\n ),\n encrypted=False,\n throughput=500,\n volume_size=50,\n volume_type=\"gp2\",\n ),\n )],\n cluster_name=\"sample-ecs-cluster\",\n desired_capacity=0,\n draining_timeout=120,\n ebs_optimized=True,\n iam_instance_profile=\"iam-profile\",\n image_id=\"ami-12345\",\n instance_metadata_options=spotinst.ecs.OceanInstanceMetadataOptionsArgs(\n http_put_response_hop_limit=10,\n http_tokens=\"required\",\n ),\n key_pair=\"KeyPair\",\n logging=spotinst.ecs.OceanLoggingArgs(\n export=spotinst.ecs.OceanLoggingExportArgs(\n s3=[{\n \"id\": \"di-abcd123\",\n }],\n ),\n ),\n max_size=1,\n min_size=0,\n monitoring=True,\n optimize_images=spotinst.ecs.OceanOptimizeImagesArgs(\n perform_at=\"timeWindow\",\n should_optimize_ecs_ami=True,\n time_windows=[\n \"Sun:02:00-Sun:12:00\",\n \"Sun:05:00-Sun:16:00\",\n ],\n ),\n region=\"us-west-2\",\n security_group_ids=[\"sg-12345\"],\n spot_percentage=100,\n subnet_ids=[\"subnet-12345\"],\n tags=[spotinst.ecs.OceanTagArgs(\n key=\"fakeKey\",\n value=\"fakeValue\",\n )],\n use_as_template_only=True,\n user_data=\"echo hello world\",\n utilize_commitments=False,\n utilize_reserved_instances=False,\n whitelists=[\"t3.medium\"])\n```\n```csharp\nusing Pulumi;\nusing SpotInst = Pulumi.SpotInst;\n\nclass MyStack : Stack\n{\n public MyStack()\n {\n var example = new SpotInst.Ecs.Ocean(\"example\", new SpotInst.Ecs.OceanArgs\n {\n AssociatePublicIpAddress = false,\n BlockDeviceMappings = \n {\n new SpotInst.Ecs.Inputs.OceanBlockDeviceMappingArgs\n {\n DeviceName = \"/dev/xvda1\",\n Ebs = new SpotInst.Ecs.Inputs.OceanBlockDeviceMappingEbsArgs\n {\n DeleteOnTermination = true,\n DynamicVolumeSize = new SpotInst.Ecs.Inputs.OceanBlockDeviceMappingEbsDynamicVolumeSizeArgs\n {\n BaseSize = 50,\n Resource = \"CPU\",\n SizePerResourceUnit = 20,\n },\n Encrypted = false,\n Throughput = 500,\n VolumeSize = 50,\n VolumeType = \"gp2\",\n },\n },\n },\n ClusterName = \"sample-ecs-cluster\",\n DesiredCapacity = 0,\n DrainingTimeout = 120,\n EbsOptimized = true,\n IamInstanceProfile = \"iam-profile\",\n ImageId = \"ami-12345\",\n InstanceMetadataOptions = new SpotInst.Ecs.Inputs.OceanInstanceMetadataOptionsArgs\n {\n HttpPutResponseHopLimit = 10,\n HttpTokens = \"required\",\n },\n KeyPair = \"KeyPair\",\n Logging = new SpotInst.Ecs.Inputs.OceanLoggingArgs\n {\n Export = new SpotInst.Ecs.Inputs.OceanLoggingExportArgs\n {\n S3 = \n {\n \n {\n { \"id\", \"di-abcd123\" },\n },\n },\n },\n },\n MaxSize = 1,\n MinSize = 0,\n Monitoring = true,\n OptimizeImages = new SpotInst.Ecs.Inputs.OceanOptimizeImagesArgs\n {\n PerformAt = \"timeWindow\",\n ShouldOptimizeEcsAmi = true,\n TimeWindows = \n {\n \"Sun:02:00-Sun:12:00\",\n \"Sun:05:00-Sun:16:00\",\n },\n },\n Region = \"us-west-2\",\n SecurityGroupIds = \n {\n \"sg-12345\",\n },\n SpotPercentage = 100,\n SubnetIds = \n {\n \"subnet-12345\",\n },\n Tags = \n {\n new SpotInst.Ecs.Inputs.OceanTagArgs\n {\n Key = \"fakeKey\",\n Value = \"fakeValue\",\n },\n },\n UseAsTemplateOnly = true,\n UserData = \"echo hello world\",\n UtilizeCommitments = false,\n UtilizeReservedInstances = false,\n Whitelists = \n {\n \"t3.medium\",\n },\n });\n }\n\n}\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-spotinst/sdk/v3/go/spotinst/ecs\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\t_, err := ecs.NewOcean(ctx, \"example\", \u0026ecs.OceanArgs{\n\t\t\tAssociatePublicIpAddress: pulumi.Bool(false),\n\t\t\tBlockDeviceMappings: ecs.OceanBlockDeviceMappingArray{\n\t\t\t\t\u0026ecs.OceanBlockDeviceMappingArgs{\n\t\t\t\t\tDeviceName: pulumi.String(\"/dev/xvda1\"),\n\t\t\t\t\tEbs: \u0026ecs.OceanBlockDeviceMappingEbsArgs{\n\t\t\t\t\t\tDeleteOnTermination: pulumi.Bool(true),\n\t\t\t\t\t\tDynamicVolumeSize: \u0026ecs.OceanBlockDeviceMappingEbsDynamicVolumeSizeArgs{\n\t\t\t\t\t\t\tBaseSize: pulumi.Int(50),\n\t\t\t\t\t\t\tResource: pulumi.String(\"CPU\"),\n\t\t\t\t\t\t\tSizePerResourceUnit: pulumi.Int(20),\n\t\t\t\t\t\t},\n\t\t\t\t\t\tEncrypted: pulumi.Bool(false),\n\t\t\t\t\t\tThroughput: pulumi.Int(500),\n\t\t\t\t\t\tVolumeSize: pulumi.Int(50),\n\t\t\t\t\t\tVolumeType: pulumi.String(\"gp2\"),\n\t\t\t\t\t},\n\t\t\t\t},\n\t\t\t},\n\t\t\tClusterName: pulumi.String(\"sample-ecs-cluster\"),\n\t\t\tDesiredCapacity: pulumi.Int(0),\n\t\t\tDrainingTimeout: pulumi.Int(120),\n\t\t\tEbsOptimized: pulumi.Bool(true),\n\t\t\tIamInstanceProfile: pulumi.String(\"iam-profile\"),\n\t\t\tImageId: pulumi.String(\"ami-12345\"),\n\t\t\tInstanceMetadataOptions: \u0026ecs.OceanInstanceMetadataOptionsArgs{\n\t\t\t\tHttpPutResponseHopLimit: pulumi.Int(10),\n\t\t\t\tHttpTokens: pulumi.String(\"required\"),\n\t\t\t},\n\t\t\tKeyPair: pulumi.String(\"KeyPair\"),\n\t\t\tLogging: \u0026ecs.OceanLoggingArgs{\n\t\t\t\tExport: \u0026ecs.OceanLoggingExportArgs{\n\t\t\t\t\tS3: []map[string]interface{}{\n\t\t\t\t\t\tmap[string]interface{}{\n\t\t\t\t\t\t\t\"id\": \"di-abcd123\",\n\t\t\t\t\t\t},\n\t\t\t\t\t},\n\t\t\t\t},\n\t\t\t},\n\t\t\tMaxSize: pulumi.Int(1),\n\t\t\tMinSize: pulumi.Int(0),\n\t\t\tMonitoring: pulumi.Bool(true),\n\t\t\tOptimizeImages: \u0026ecs.OceanOptimizeImagesArgs{\n\t\t\t\tPerformAt: pulumi.String(\"timeWindow\"),\n\t\t\t\tShouldOptimizeEcsAmi: pulumi.Bool(true),\n\t\t\t\tTimeWindows: pulumi.StringArray{\n\t\t\t\t\tpulumi.String(\"Sun:02:00-Sun:12:00\"),\n\t\t\t\t\tpulumi.String(\"Sun:05:00-Sun:16:00\"),\n\t\t\t\t},\n\t\t\t},\n\t\t\tRegion: pulumi.String(\"us-west-2\"),\n\t\t\tSecurityGroupIds: pulumi.StringArray{\n\t\t\t\tpulumi.String(\"sg-12345\"),\n\t\t\t},\n\t\t\tSpotPercentage: pulumi.Int(100),\n\t\t\tSubnetIds: pulumi.StringArray{\n\t\t\t\tpulumi.String(\"subnet-12345\"),\n\t\t\t},\n\t\t\tTags: ecs.OceanTagArray{\n\t\t\t\t\u0026ecs.OceanTagArgs{\n\t\t\t\t\tKey: pulumi.String(\"fakeKey\"),\n\t\t\t\t\tValue: pulumi.String(\"fakeValue\"),\n\t\t\t\t},\n\t\t\t},\n\t\t\tUseAsTemplateOnly: pulumi.Bool(true),\n\t\t\tUserData: pulumi.String(\"echo hello world\"),\n\t\t\tUtilizeCommitments: pulumi.Bool(false),\n\t\t\tUtilizeReservedInstances: pulumi.Bool(false),\n\t\t\tWhitelists: pulumi.StringArray{\n\t\t\t\tpulumi.String(\"t3.medium\"),\n\t\t\t},\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport java.util.*;\nimport java.io.*;\nimport java.nio.*;\nimport com.pulumi.*;\n\npublic class App {\n public static void main(String[] args) {\n Pulumi.run(App::stack);\n }\n\n public static void stack(Context ctx) {\n var example = new Ocean(\"example\", OceanArgs.builder() \n .associatePublicIpAddress(false)\n .blockDeviceMappings(OceanBlockDeviceMappingArgs.builder()\n .deviceName(\"/dev/xvda1\")\n .ebs(OceanBlockDeviceMappingEbsArgs.builder()\n .deleteOnTermination(\"true\")\n .dynamicVolumeSize(OceanBlockDeviceMappingEbsDynamicVolumeSizeArgs.builder()\n .baseSize(50)\n .resource(\"CPU\")\n .sizePerResourceUnit(20)\n .build())\n .encrypted(\"false\")\n .throughput(500)\n .volumeSize(50)\n .volumeType(\"gp2\")\n .build())\n .build())\n .clusterName(\"sample-ecs-cluster\")\n .desiredCapacity(\"0\")\n .drainingTimeout(120)\n .ebsOptimized(true)\n .iamInstanceProfile(\"iam-profile\")\n .imageId(\"ami-12345\")\n .instanceMetadataOptions(OceanInstanceMetadataOptionsArgs.builder()\n .httpPutResponseHopLimit(10)\n .httpTokens(\"required\")\n .build())\n .keyPair(\"KeyPair\")\n .logging(OceanLoggingArgs.builder()\n .export(OceanLoggingExportArgs.builder()\n .s3(%!v(PANIC=Format method: runtime error: invalid memory address or nil pointer dereference))\n .build())\n .build())\n .maxSize(\"1\")\n .minSize(\"0\")\n .monitoring(true)\n .optimizeImages(OceanOptimizeImagesArgs.builder()\n .performAt(\"timeWindow\")\n .shouldOptimizeEcsAmi(true)\n .timeWindows( \n \"Sun:02:00-Sun:12:00\",\n \"Sun:05:00-Sun:16:00\")\n .build())\n .region(\"us-west-2\")\n .securityGroupIds(\"sg-12345\")\n .spotPercentage(100)\n .subnetIds(\"subnet-12345\")\n .tags(OceanTagArgs.builder()\n .key(\"fakeKey\")\n .value(\"fakeValue\")\n .build())\n .useAsTemplateOnly(true)\n .userData(\"echo hello world\")\n .utilizeCommitments(false)\n .utilizeReservedInstances(false)\n .whitelists(\"t3.medium\")\n .build());\n\n }\n}\n```\n```yaml\nresources:\n example:\n type: spotinst:ecs:Ocean\n properties:\n associatePublicIpAddress: false\n blockDeviceMappings:\n - deviceName: /dev/xvda1\n ebs:\n deleteOnTermination: true\n dynamicVolumeSize:\n baseSize: 50\n resource: CPU\n sizePerResourceUnit: 20\n encrypted: false\n throughput: 500\n volumeSize: 50\n volumeType: gp2\n clusterName: sample-ecs-cluster\n desiredCapacity: 0\n drainingTimeout: 120\n ebsOptimized: true\n iamInstanceProfile: iam-profile\n imageId: ami-12345\n instanceMetadataOptions:\n httpPutResponseHopLimit: 10\n httpTokens: required\n keyPair: KeyPair\n logging:\n export:\n s3:\n - id: di-abcd123\n maxSize: 1\n minSize: 0\n monitoring: true\n optimizeImages:\n performAt: timeWindow\n shouldOptimizeEcsAmi: true\n timeWindows:\n - Sun:02:00-Sun:12:00\n - Sun:05:00-Sun:16:00\n region: us-west-2\n securityGroupIds:\n - sg-12345\n spotPercentage: 100\n subnetIds:\n - subnet-12345\n tags:\n - key: fakeKey\n value: fakeValue\n useAsTemplateOnly: true\n userData: echo hello world\n utilizeCommitments: false\n utilizeReservedInstances: false\n whitelists:\n - t3.medium\n```\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\n\nexport const oceanId = spotinst_ocean_ecs.example.id;\n```\n```python\nimport pulumi\n\npulumi.export(\"oceanId\", spotinst_ocean_ecs[\"example\"][\"id\"])\n```\n```csharp\nusing Pulumi;\n\nclass MyStack : Stack\n{\n public MyStack()\n {\n this.OceanId = spotinst_ocean_ecs.Example.Id;\n }\n\n [Output(\"oceanId\")]\n public Output\u003cstring\u003e OceanId { get; set; }\n}\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\tctx.Export(\"oceanId\", spotinst_ocean_ecs.Example.Id)\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport java.util.*;\nimport java.io.*;\nimport java.nio.*;\nimport com.pulumi.*;\n\npublic class App {\n public static void main(String[] args) {\n Pulumi.run(App::stack);\n }\n\n public static void stack(Context ctx) {\n ctx.export(\"oceanId\", spotinst_ocean_ecs.example().id());\n }\n}\n```\n```yaml\noutputs:\n oceanId: ${spotinst_ocean_ecs.example.id}\n```\n{{% /example %}}\n{{% /examples %}}", "properties": { "associatePublicIpAddress": { "type": "boolean", @@ -18961,6 +18961,10 @@ "$ref": "#/types/spotinst:ecs/OceanUpdatePolicy:OceanUpdatePolicy", "description": "While used, you can control whether the group should perform a deployment after an update to the configuration.\n" }, + "useAsTemplateOnly": { + "type": "boolean", + "description": "launch specification defined on the Ocean object will function only as a template for virtual node groups.\n" + }, "userData": { "type": "string", "description": "Base64-encoded MIME user data to make available to the instances.\n" @@ -19103,6 +19107,10 @@ "$ref": "#/types/spotinst:ecs/OceanUpdatePolicy:OceanUpdatePolicy", "description": "While used, you can control whether the group should perform a deployment after an update to the configuration.\n" }, + "useAsTemplateOnly": { + "type": "boolean", + "description": "launch specification defined on the Ocean object will function only as a template for virtual node groups.\n" + }, "userData": { "type": "string", "description": "Base64-encoded MIME user data to make available to the instances.\n" @@ -19243,6 +19251,10 @@ "$ref": "#/types/spotinst:ecs/OceanUpdatePolicy:OceanUpdatePolicy", "description": "While used, you can control whether the group should perform a deployment after an update to the configuration.\n" }, + "useAsTemplateOnly": { + "type": "boolean", + "description": "launch specification defined on the Ocean object will function only as a template for virtual node groups.\n" + }, "userData": { "type": "string", "description": "Base64-encoded MIME user data to make available to the instances.\n" @@ -20488,7 +20500,7 @@ } }, "spotinst:gke/oceanImport:OceanImport": { - "description": "{{% examples %}}\n## Example Usage\n{{% example %}}\n\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as spotinst from \"@pulumi/spotinst\";\n\nconst example = new spotinst.gke.OceanImport(\"example\", {\n backendServices: [{\n locationType: \"regional\",\n namedPorts: [{\n name: \"http\",\n ports: [\n \"80\",\n \"8080\",\n ],\n }],\n scheme: \"INTERNAL\",\n serviceName: \"example-backend-service\",\n }],\n clusterName: \"example-cluster-name\",\n controllerClusterId: \"example-controller-123124\",\n desiredCapacity: 0,\n location: \"us-central1-a\",\n maxSize: 2,\n minSize: 0,\n rootVolumeType: \"pd-ssd\",\n shieldedInstanceConfig: {\n enableIntegrityMonitoring: true,\n enableSecureBoot: true,\n },\n whitelists: [\n \"n1-standard-1\",\n \"n1-standard-2\",\n ],\n});\n```\n```python\nimport pulumi\nimport pulumi_spotinst as spotinst\n\nexample = spotinst.gke.OceanImport(\"example\",\n backend_services=[spotinst.gke.OceanImportBackendServiceArgs(\n location_type=\"regional\",\n named_ports=[spotinst.gke.OceanImportBackendServiceNamedPortArgs(\n name=\"http\",\n ports=[\n \"80\",\n \"8080\",\n ],\n )],\n scheme=\"INTERNAL\",\n service_name=\"example-backend-service\",\n )],\n cluster_name=\"example-cluster-name\",\n controller_cluster_id=\"example-controller-123124\",\n desired_capacity=0,\n location=\"us-central1-a\",\n max_size=2,\n min_size=0,\n root_volume_type=\"pd-ssd\",\n shielded_instance_config=spotinst.gke.OceanImportShieldedInstanceConfigArgs(\n enable_integrity_monitoring=True,\n enable_secure_boot=True,\n ),\n whitelists=[\n \"n1-standard-1\",\n \"n1-standard-2\",\n ])\n```\n```csharp\nusing Pulumi;\nusing SpotInst = Pulumi.SpotInst;\n\nclass MyStack : Stack\n{\n public MyStack()\n {\n var example = new SpotInst.Gke.OceanImport(\"example\", new SpotInst.Gke.OceanImportArgs\n {\n BackendServices = \n {\n new SpotInst.Gke.Inputs.OceanImportBackendServiceArgs\n {\n LocationType = \"regional\",\n NamedPorts = \n {\n new SpotInst.Gke.Inputs.OceanImportBackendServiceNamedPortArgs\n {\n Name = \"http\",\n Ports = \n {\n \"80\",\n \"8080\",\n },\n },\n },\n Scheme = \"INTERNAL\",\n ServiceName = \"example-backend-service\",\n },\n },\n ClusterName = \"example-cluster-name\",\n ControllerClusterId = \"example-controller-123124\",\n DesiredCapacity = 0,\n Location = \"us-central1-a\",\n MaxSize = 2,\n MinSize = 0,\n RootVolumeType = \"pd-ssd\",\n ShieldedInstanceConfig = new SpotInst.Gke.Inputs.OceanImportShieldedInstanceConfigArgs\n {\n EnableIntegrityMonitoring = true,\n EnableSecureBoot = true,\n },\n Whitelists = \n {\n \"n1-standard-1\",\n \"n1-standard-2\",\n },\n });\n }\n\n}\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-spotinst/sdk/v3/go/spotinst/gke\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\t_, err := gke.NewOceanImport(ctx, \"example\", \u0026gke.OceanImportArgs{\n\t\t\tBackendServices: gke.OceanImportBackendServiceArray{\n\t\t\t\t\u0026gke.OceanImportBackendServiceArgs{\n\t\t\t\t\tLocationType: pulumi.String(\"regional\"),\n\t\t\t\t\tNamedPorts: gke.OceanImportBackendServiceNamedPortArray{\n\t\t\t\t\t\t\u0026gke.OceanImportBackendServiceNamedPortArgs{\n\t\t\t\t\t\t\tName: pulumi.String(\"http\"),\n\t\t\t\t\t\t\tPorts: pulumi.StringArray{\n\t\t\t\t\t\t\t\tpulumi.String(\"80\"),\n\t\t\t\t\t\t\t\tpulumi.String(\"8080\"),\n\t\t\t\t\t\t\t},\n\t\t\t\t\t\t},\n\t\t\t\t\t},\n\t\t\t\t\tScheme: pulumi.String(\"INTERNAL\"),\n\t\t\t\t\tServiceName: pulumi.String(\"example-backend-service\"),\n\t\t\t\t},\n\t\t\t},\n\t\t\tClusterName: pulumi.String(\"example-cluster-name\"),\n\t\t\tControllerClusterId: pulumi.String(\"example-controller-123124\"),\n\t\t\tDesiredCapacity: pulumi.Int(0),\n\t\t\tLocation: pulumi.String(\"us-central1-a\"),\n\t\t\tMaxSize: pulumi.Int(2),\n\t\t\tMinSize: pulumi.Int(0),\n\t\t\tRootVolumeType: pulumi.String(\"pd-ssd\"),\n\t\t\tShieldedInstanceConfig: \u0026gke.OceanImportShieldedInstanceConfigArgs{\n\t\t\t\tEnableIntegrityMonitoring: pulumi.Bool(true),\n\t\t\t\tEnableSecureBoot: pulumi.Bool(true),\n\t\t\t},\n\t\t\tWhitelists: pulumi.StringArray{\n\t\t\t\tpulumi.String(\"n1-standard-1\"),\n\t\t\t\tpulumi.String(\"n1-standard-2\"),\n\t\t\t},\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport java.util.*;\nimport java.io.*;\nimport java.nio.*;\nimport com.pulumi.*;\n\npublic class App {\n public static void main(String[] args) {\n Pulumi.run(App::stack);\n }\n\n public static void stack(Context ctx) {\n var example = new OceanImport(\"example\", OceanImportArgs.builder() \n .backendServices(OceanImportBackendServiceArgs.builder()\n .locationType(\"regional\")\n .namedPorts(OceanImportBackendServiceNamedPortArgs.builder()\n .name(\"http\")\n .ports( \n 80,\n 8080)\n .build())\n .scheme(\"INTERNAL\")\n .serviceName(\"example-backend-service\")\n .build())\n .clusterName(\"example-cluster-name\")\n .controllerClusterId(\"example-controller-123124\")\n .desiredCapacity(0)\n .location(\"us-central1-a\")\n .maxSize(2)\n .minSize(0)\n .rootVolumeType(\"pd-ssd\")\n .shieldedInstanceConfig(OceanImportShieldedInstanceConfigArgs.builder()\n .enableIntegrityMonitoring(true)\n .enableSecureBoot(true)\n .build())\n .whitelists( \n \"n1-standard-1\",\n \"n1-standard-2\")\n .build());\n\n }\n}\n```\n```yaml\nresources:\n example:\n type: spotinst:gke:OceanImport\n properties:\n backendServices:\n - locationType: regional\n namedPorts:\n - name: http\n ports:\n - 80\n - 8080\n scheme: INTERNAL\n serviceName: example-backend-service\n clusterName: example-cluster-name\n controllerClusterId: example-controller-123124\n desiredCapacity: 0\n location: us-central1-a\n maxSize: 2\n minSize: 0\n rootVolumeType: pd-ssd\n shieldedInstanceConfig:\n enableIntegrityMonitoring: true\n enableSecureBoot: true\n whitelists:\n - n1-standard-1\n - n1-standard-2\n```\n\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\n\nexport const oceanId = spotinst_ocean_gke_import.example.id;\n```\n```python\nimport pulumi\n\npulumi.export(\"oceanId\", spotinst_ocean_gke_import[\"example\"][\"id\"])\n```\n```csharp\nusing Pulumi;\n\nclass MyStack : Stack\n{\n public MyStack()\n {\n this.OceanId = spotinst_ocean_gke_import.Example.Id;\n }\n\n [Output(\"oceanId\")]\n public Output\u003cstring\u003e OceanId { get; set; }\n}\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\tctx.Export(\"oceanId\", spotinst_ocean_gke_import.Example.Id)\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport java.util.*;\nimport java.io.*;\nimport java.nio.*;\nimport com.pulumi.*;\n\npublic class App {\n public static void main(String[] args) {\n Pulumi.run(App::stack);\n }\n\n public static void stack(Context ctx) {\n ctx.export(\"oceanId\", spotinst_ocean_gke_import.example().id());\n }\n}\n```\n```yaml\noutputs:\n oceanId: ${spotinst_ocean_gke_import.example.id}\n```\n{{% /example %}}\n{{% /examples %}}\n## Strategy\n\n* `strategy` - (Optional) Strategy object.\n * `draining_timeout` - (Optional) The draining timeout (in seconds) before terminating the instance. If no draining timeout is defined, the default draining timeout will be used.\n * `provisioning_model` - (Optional) Define the provisioning model of the launched instances. Valid values: `SPOT`, `PREEMPTIBLE`.\n * `preemptible_percentage`- (Optional) Defines the desired preemptible percentage for the cluster.\n\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\n```\n```python\nimport pulumi\n```\n```csharp\nusing Pulumi;\n\nclass MyStack : Stack\n{\n public MyStack()\n {\n }\n\n}\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport java.util.*;\nimport java.io.*;\nimport java.nio.*;\nimport com.pulumi.*;\n\npublic class App {\n public static void main(String[] args) {\n Pulumi.run(App::stack);\n }\n\n public static void stack(Context ctx) {\n }\n}\n```\n```yaml\n{}\n```\n\n\u003ca id=\"update-policy\"\u003e\u003c/a\u003e\n## Update Policy\n\n* `update_policy` - (Optional)\n * `should_roll` - (Required) Enables the roll.\n * `conditioned_roll` - (Optional, Default: false) Spot will perform a cluster Roll in accordance with a relevant modification of the cluster’s settings. When set to true , only specific changes in the cluster’s configuration will trigger a cluster roll (such as AMI, Key Pair, user data, instance types, load balancers, etc).\n\n * `roll_config` - (Required) Holds the roll configuration.\n * `batch_size_percentage` - (Required) Sets the percentage of the instances to deploy in each batch.\n * `launch_spec_ids` - (Optional) List of Virtual Node Group identifiers to be rolled.\n * `batch_min_healthy_percentage` - (Optional) Default: 50. Indicates the threshold of minimum healthy instances in single batch. If the amount of healthy instances in single batch is under the threshold, the cluster roll will fail. If exists, the parameter value will be in range of 1-100. In case of null as value, the default value in the backend will be 50%. Value of param should represent the number in percentage (%) of the batch.\n\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\n```\n```python\nimport pulumi\n```\n```csharp\nusing Pulumi;\n\nclass MyStack : Stack\n{\n public MyStack()\n {\n }\n\n}\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport java.util.*;\nimport java.io.*;\nimport java.nio.*;\nimport com.pulumi.*;\n\npublic class App {\n public static void main(String[] args) {\n Pulumi.run(App::stack);\n }\n\n public static void stack(Context ctx) {\n }\n}\n```\n```yaml\n{}\n```\n", + "description": "{{% examples %}}\n## Example Usage\n{{% example %}}\n\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as spotinst from \"@pulumi/spotinst\";\n\nconst example = new spotinst.gke.OceanImport(\"example\", {\n backendServices: [{\n locationType: \"regional\",\n namedPorts: [{\n name: \"http\",\n ports: [\n \"80\",\n \"8080\",\n ],\n }],\n scheme: \"INTERNAL\",\n serviceName: \"example-backend-service\",\n }],\n clusterName: \"example-cluster-name\",\n controllerClusterId: \"example-controller-123124\",\n desiredCapacity: 0,\n location: \"us-central1-a\",\n maxSize: 2,\n minSize: 0,\n rootVolumeType: \"pd-ssd\",\n shieldedInstanceConfig: {\n enableIntegrityMonitoring: true,\n enableSecureBoot: true,\n },\n useAsTemplateOnly: false,\n whitelists: [\n \"n1-standard-1\",\n \"n1-standard-2\",\n ],\n});\n```\n```python\nimport pulumi\nimport pulumi_spotinst as spotinst\n\nexample = spotinst.gke.OceanImport(\"example\",\n backend_services=[spotinst.gke.OceanImportBackendServiceArgs(\n location_type=\"regional\",\n named_ports=[spotinst.gke.OceanImportBackendServiceNamedPortArgs(\n name=\"http\",\n ports=[\n \"80\",\n \"8080\",\n ],\n )],\n scheme=\"INTERNAL\",\n service_name=\"example-backend-service\",\n )],\n cluster_name=\"example-cluster-name\",\n controller_cluster_id=\"example-controller-123124\",\n desired_capacity=0,\n location=\"us-central1-a\",\n max_size=2,\n min_size=0,\n root_volume_type=\"pd-ssd\",\n shielded_instance_config=spotinst.gke.OceanImportShieldedInstanceConfigArgs(\n enable_integrity_monitoring=True,\n enable_secure_boot=True,\n ),\n use_as_template_only=False,\n whitelists=[\n \"n1-standard-1\",\n \"n1-standard-2\",\n ])\n```\n```csharp\nusing Pulumi;\nusing SpotInst = Pulumi.SpotInst;\n\nclass MyStack : Stack\n{\n public MyStack()\n {\n var example = new SpotInst.Gke.OceanImport(\"example\", new SpotInst.Gke.OceanImportArgs\n {\n BackendServices = \n {\n new SpotInst.Gke.Inputs.OceanImportBackendServiceArgs\n {\n LocationType = \"regional\",\n NamedPorts = \n {\n new SpotInst.Gke.Inputs.OceanImportBackendServiceNamedPortArgs\n {\n Name = \"http\",\n Ports = \n {\n \"80\",\n \"8080\",\n },\n },\n },\n Scheme = \"INTERNAL\",\n ServiceName = \"example-backend-service\",\n },\n },\n ClusterName = \"example-cluster-name\",\n ControllerClusterId = \"example-controller-123124\",\n DesiredCapacity = 0,\n Location = \"us-central1-a\",\n MaxSize = 2,\n MinSize = 0,\n RootVolumeType = \"pd-ssd\",\n ShieldedInstanceConfig = new SpotInst.Gke.Inputs.OceanImportShieldedInstanceConfigArgs\n {\n EnableIntegrityMonitoring = true,\n EnableSecureBoot = true,\n },\n UseAsTemplateOnly = false,\n Whitelists = \n {\n \"n1-standard-1\",\n \"n1-standard-2\",\n },\n });\n }\n\n}\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-spotinst/sdk/v3/go/spotinst/gke\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\t_, err := gke.NewOceanImport(ctx, \"example\", \u0026gke.OceanImportArgs{\n\t\t\tBackendServices: gke.OceanImportBackendServiceArray{\n\t\t\t\t\u0026gke.OceanImportBackendServiceArgs{\n\t\t\t\t\tLocationType: pulumi.String(\"regional\"),\n\t\t\t\t\tNamedPorts: gke.OceanImportBackendServiceNamedPortArray{\n\t\t\t\t\t\t\u0026gke.OceanImportBackendServiceNamedPortArgs{\n\t\t\t\t\t\t\tName: pulumi.String(\"http\"),\n\t\t\t\t\t\t\tPorts: pulumi.StringArray{\n\t\t\t\t\t\t\t\tpulumi.String(\"80\"),\n\t\t\t\t\t\t\t\tpulumi.String(\"8080\"),\n\t\t\t\t\t\t\t},\n\t\t\t\t\t\t},\n\t\t\t\t\t},\n\t\t\t\t\tScheme: pulumi.String(\"INTERNAL\"),\n\t\t\t\t\tServiceName: pulumi.String(\"example-backend-service\"),\n\t\t\t\t},\n\t\t\t},\n\t\t\tClusterName: pulumi.String(\"example-cluster-name\"),\n\t\t\tControllerClusterId: pulumi.String(\"example-controller-123124\"),\n\t\t\tDesiredCapacity: pulumi.Int(0),\n\t\t\tLocation: pulumi.String(\"us-central1-a\"),\n\t\t\tMaxSize: pulumi.Int(2),\n\t\t\tMinSize: pulumi.Int(0),\n\t\t\tRootVolumeType: pulumi.String(\"pd-ssd\"),\n\t\t\tShieldedInstanceConfig: \u0026gke.OceanImportShieldedInstanceConfigArgs{\n\t\t\t\tEnableIntegrityMonitoring: pulumi.Bool(true),\n\t\t\t\tEnableSecureBoot: pulumi.Bool(true),\n\t\t\t},\n\t\t\tUseAsTemplateOnly: pulumi.Bool(false),\n\t\t\tWhitelists: pulumi.StringArray{\n\t\t\t\tpulumi.String(\"n1-standard-1\"),\n\t\t\t\tpulumi.String(\"n1-standard-2\"),\n\t\t\t},\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport java.util.*;\nimport java.io.*;\nimport java.nio.*;\nimport com.pulumi.*;\n\npublic class App {\n public static void main(String[] args) {\n Pulumi.run(App::stack);\n }\n\n public static void stack(Context ctx) {\n var example = new OceanImport(\"example\", OceanImportArgs.builder() \n .backendServices(OceanImportBackendServiceArgs.builder()\n .locationType(\"regional\")\n .namedPorts(OceanImportBackendServiceNamedPortArgs.builder()\n .name(\"http\")\n .ports( \n 80,\n 8080)\n .build())\n .scheme(\"INTERNAL\")\n .serviceName(\"example-backend-service\")\n .build())\n .clusterName(\"example-cluster-name\")\n .controllerClusterId(\"example-controller-123124\")\n .desiredCapacity(0)\n .location(\"us-central1-a\")\n .maxSize(2)\n .minSize(0)\n .rootVolumeType(\"pd-ssd\")\n .shieldedInstanceConfig(OceanImportShieldedInstanceConfigArgs.builder()\n .enableIntegrityMonitoring(true)\n .enableSecureBoot(true)\n .build())\n .useAsTemplateOnly(false)\n .whitelists( \n \"n1-standard-1\",\n \"n1-standard-2\")\n .build());\n\n }\n}\n```\n```yaml\nresources:\n example:\n type: spotinst:gke:OceanImport\n properties:\n backendServices:\n - locationType: regional\n namedPorts:\n - name: http\n ports:\n - 80\n - 8080\n scheme: INTERNAL\n serviceName: example-backend-service\n clusterName: example-cluster-name\n controllerClusterId: example-controller-123124\n desiredCapacity: 0\n location: us-central1-a\n maxSize: 2\n minSize: 0\n rootVolumeType: pd-ssd\n shieldedInstanceConfig:\n enableIntegrityMonitoring: true\n enableSecureBoot: true\n useAsTemplateOnly: false\n whitelists:\n - n1-standard-1\n - n1-standard-2\n```\n\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\n\nexport const oceanId = spotinst_ocean_gke_import.example.id;\n```\n```python\nimport pulumi\n\npulumi.export(\"oceanId\", spotinst_ocean_gke_import[\"example\"][\"id\"])\n```\n```csharp\nusing Pulumi;\n\nclass MyStack : Stack\n{\n public MyStack()\n {\n this.OceanId = spotinst_ocean_gke_import.Example.Id;\n }\n\n [Output(\"oceanId\")]\n public Output\u003cstring\u003e OceanId { get; set; }\n}\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\tctx.Export(\"oceanId\", spotinst_ocean_gke_import.Example.Id)\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport java.util.*;\nimport java.io.*;\nimport java.nio.*;\nimport com.pulumi.*;\n\npublic class App {\n public static void main(String[] args) {\n Pulumi.run(App::stack);\n }\n\n public static void stack(Context ctx) {\n ctx.export(\"oceanId\", spotinst_ocean_gke_import.example().id());\n }\n}\n```\n```yaml\noutputs:\n oceanId: ${spotinst_ocean_gke_import.example.id}\n```\n{{% /example %}}\n{{% /examples %}}\n## Strategy\n\n* `strategy` - (Optional) Strategy object.\n * `draining_timeout` - (Optional) The draining timeout (in seconds) before terminating the instance. If no draining timeout is defined, the default draining timeout will be used.\n * `provisioning_model` - (Optional) Define the provisioning model of the launched instances. Valid values: `SPOT`, `PREEMPTIBLE`.\n * `preemptible_percentage`- (Optional) Defines the desired preemptible percentage for the cluster.\n\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\n```\n```python\nimport pulumi\n```\n```csharp\nusing Pulumi;\n\nclass MyStack : Stack\n{\n public MyStack()\n {\n }\n\n}\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport java.util.*;\nimport java.io.*;\nimport java.nio.*;\nimport com.pulumi.*;\n\npublic class App {\n public static void main(String[] args) {\n Pulumi.run(App::stack);\n }\n\n public static void stack(Context ctx) {\n }\n}\n```\n```yaml\n{}\n```\n\n\u003ca id=\"update-policy\"\u003e\u003c/a\u003e\n## Update Policy\n\n* `update_policy` - (Optional)\n * `should_roll` - (Required) Enables the roll.\n * `conditioned_roll` - (Optional, Default: false) Spot will perform a cluster Roll in accordance with a relevant modification of the cluster’s settings. When set to true , only specific changes in the cluster’s configuration will trigger a cluster roll (such as AMI, Key Pair, user data, instance types, load balancers, etc).\n\n * `roll_config` - (Required) Holds the roll configuration.\n * `batch_size_percentage` - (Required) Sets the percentage of the instances to deploy in each batch.\n * `launch_spec_ids` - (Optional) List of Virtual Node Group identifiers to be rolled.\n * `batch_min_healthy_percentage` - (Optional) Default: 50. Indicates the threshold of minimum healthy instances in single batch. If the amount of healthy instances in single batch is under the threshold, the cluster roll will fail. If exists, the parameter value will be in range of 1-100. In case of null as value, the default value in the backend will be 50%. Value of param should represent the number in percentage (%) of the batch.\n\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\n```\n```python\nimport pulumi\n```\n```csharp\nusing Pulumi;\n\nclass MyStack : Stack\n{\n public MyStack()\n {\n }\n\n}\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport java.util.*;\nimport java.io.*;\nimport java.nio.*;\nimport com.pulumi.*;\n\npublic class App {\n public static void main(String[] args) {\n Pulumi.run(App::stack);\n }\n\n public static void stack(Context ctx) {\n }\n}\n```\n```yaml\n{}\n```\n", "properties": { "autoscaler": { "$ref": "#/types/spotinst:gke/OceanImportAutoscaler:OceanImportAutoscaler", @@ -20552,6 +20564,10 @@ "updatePolicy": { "$ref": "#/types/spotinst:gke/OceanImportUpdatePolicy:OceanImportUpdatePolicy" }, + "useAsTemplateOnly": { + "type": "boolean", + "description": "launch specification defined on the Ocean object will function only as a template for virtual node groups.\n" + }, "whitelists": { "type": "array", "items": { @@ -20631,6 +20647,10 @@ "updatePolicy": { "$ref": "#/types/spotinst:gke/OceanImportUpdatePolicy:OceanImportUpdatePolicy" }, + "useAsTemplateOnly": { + "type": "boolean", + "description": "launch specification defined on the Ocean object will function only as a template for virtual node groups.\n" + }, "whitelists": { "type": "array", "items": { @@ -20708,6 +20728,10 @@ "updatePolicy": { "$ref": "#/types/spotinst:gke/OceanImportUpdatePolicy:OceanImportUpdatePolicy" }, + "useAsTemplateOnly": { + "type": "boolean", + "description": "launch specification defined on the Ocean object will function only as a template for virtual node groups.\n" + }, "whitelists": { "type": "array", "items": { diff --git a/provider/go.mod b/provider/go.mod index 6a03ab4d..f43e5816 100644 --- a/provider/go.mod +++ b/provider/go.mod @@ -13,7 +13,7 @@ replace ( github.com/hashicorp/terraform-exec => github.com/hashicorp/terraform-exec v0.15.0 github.com/hashicorp/terraform-plugin-sdk/v2 => github.com/pulumi/terraform-plugin-sdk/v2 v2.0.0-20220505215311-795430389fa7 github.com/hashicorp/vault => github.com/hashicorp/vault v1.2.0 - github.com/spotinst/terraform-provider-spotinst => github.com/pulumi/terraform-provider-spotinst v1.33.1-0.20220627133113-a1bc6c524aae + github.com/spotinst/terraform-provider-spotinst => github.com/pulumi/terraform-provider-spotinst v1.33.1-0.20220630132753-b477e3d735ce ) require ( @@ -168,9 +168,9 @@ require ( github.com/spf13/cast v1.4.1 // indirect github.com/spf13/cobra v1.4.0 // indirect github.com/spf13/pflag v1.0.5 // indirect - github.com/spotinst/spotinst-sdk-go v1.120.0 // indirect + github.com/spotinst/spotinst-sdk-go v1.122.0 // indirect github.com/src-d/gcfg v1.4.0 // indirect - github.com/stretchr/testify v1.7.1 // indirect + github.com/stretchr/testify v1.7.2 // indirect github.com/terraform-providers/terraform-provider-archive v1.3.0 // indirect github.com/terraform-providers/terraform-provider-http v1.2.0 // indirect github.com/texttheater/golang-levenshtein v1.0.1 // indirect @@ -207,12 +207,12 @@ require ( google.golang.org/grpc v1.45.0 // indirect google.golang.org/protobuf v1.28.0 // indirect gopkg.in/AlecAivazis/survey.v1 v1.8.9-0.20200217094205-6773bdf39b7f // indirect - gopkg.in/ini.v1 v1.66.4 // indirect + gopkg.in/ini.v1 v1.66.6 // indirect gopkg.in/square/go-jose.v2 v2.6.0 // indirect gopkg.in/src-d/go-billy.v4 v4.3.2 // indirect gopkg.in/src-d/go-git.v4 v4.13.1 // indirect gopkg.in/warnings.v0 v0.1.2 // indirect gopkg.in/yaml.v2 v2.4.0 // indirect - gopkg.in/yaml.v3 v3.0.0-20210107192922-496545a6307b // indirect + gopkg.in/yaml.v3 v3.0.1 // indirect sourcegraph.com/sourcegraph/appdash v0.0.0-20211028080628-e2786a622600 // indirect ) diff --git a/provider/go.sum b/provider/go.sum index 699ac0aa..55c65bed 100644 --- a/provider/go.sum +++ b/provider/go.sum @@ -813,8 +813,8 @@ github.com/pulumi/terraform-diff-reader v0.0.0-20201211191010-ad4715e9285e h1:Di github.com/pulumi/terraform-diff-reader v0.0.0-20201211191010-ad4715e9285e/go.mod h1:sZ9FUzGO+yM41hsQHs/yIcj/Y993qMdBxBU5mpDmAfQ= github.com/pulumi/terraform-plugin-sdk/v2 v2.0.0-20220505215311-795430389fa7 h1:RAiGj0GniixD+G+HuUzFWZh2VKdQ50nv5+EmkKG1u3E= github.com/pulumi/terraform-plugin-sdk/v2 v2.0.0-20220505215311-795430389fa7/go.mod h1:TPjMXvpPNWagHzYOmVPzzRRIBTuaLVukR+esL08tgzg= -github.com/pulumi/terraform-provider-spotinst v1.33.1-0.20220627133113-a1bc6c524aae h1:Gl62oiOkZLfvj2EMLUEx7n7Yc/3F6uPKuP9qKRkbahw= -github.com/pulumi/terraform-provider-spotinst v1.33.1-0.20220627133113-a1bc6c524aae/go.mod h1:FfRBM2p2OAZwLedaciLOriCavBrCkGHlMl0n0IVYdzI= +github.com/pulumi/terraform-provider-spotinst v1.33.1-0.20220630132753-b477e3d735ce h1:/wGwlMPQJqG6NMUkcSp6fD5WHKrUbPsO8RcIu0c1D0w= +github.com/pulumi/terraform-provider-spotinst v1.33.1-0.20220630132753-b477e3d735ce/go.mod h1:ym5VECfYnrcNSrV/k1Xzsnsmp04Qk0scURjWtPZoTcU= github.com/rivo/uniseg v0.2.0 h1:S1pD9weZBuJdFmowNwbpi7BJ8TNftyUImj/0WQi72jY= github.com/rivo/uniseg v0.2.0/go.mod h1:J6wj4VEh+S6ZtnVlnTBMWIodfgj8LQOQFoIToxlJtxc= github.com/rjeczalik/notify v0.9.2 h1:MiTWrPj55mNDHEiIX5YUSKefw/+lCQVoAFmD6oQm5w8= @@ -858,8 +858,8 @@ github.com/spf13/pflag v1.0.2/go.mod h1:DYY7MBk1bdzusC3SYhjObp+wFpr4gzcvqqNjLnIn github.com/spf13/pflag v1.0.3/go.mod h1:DYY7MBk1bdzusC3SYhjObp+wFpr4gzcvqqNjLnInEg4= github.com/spf13/pflag v1.0.5 h1:iy+VFUOCP1a+8yFto/drg2CJ5u0yRoB7fZw3DKv/JXA= github.com/spf13/pflag v1.0.5/go.mod h1:McXfInJRrz4CZXVZOBLb0bTZqETkiAhM9Iw0y3An2Bg= -github.com/spotinst/spotinst-sdk-go v1.120.0 h1:cwAx284c4mQDvL6hXI4e+XNC3snICIEWeuDJvN3YPA4= -github.com/spotinst/spotinst-sdk-go v1.120.0/go.mod h1:786KK8PDw7vdtLgni44bUS1JjxdA/Xa2XLhsqTHXQdg= +github.com/spotinst/spotinst-sdk-go v1.122.0 h1:AZhfF3MC6GgpmhhJkviYGrgpeLFphudtFkdNrCs+sVw= +github.com/spotinst/spotinst-sdk-go v1.122.0/go.mod h1:C6mrT7+mqOgPyabacjyYTvilu8Xm96mvTvrZQhj99WI= github.com/src-d/gcfg v1.4.0 h1:xXbNR5AlLSA315x2UO+fTSSAXCDf+Ar38/6oyGbDKQ4= github.com/src-d/gcfg v1.4.0/go.mod h1:p/UMsR43ujA89BJY9duynAwIpvqEujIH/jFlfL7jWoI= github.com/stretchr/objx v0.1.0/go.mod h1:HFkY916IF+rwdDfMAkV7OtwuqBVzrE8GR6GFx+wExME= @@ -873,8 +873,8 @@ github.com/stretchr/testify v1.4.0/go.mod h1:j7eGeouHqKxXV5pUuKE4zz7dFj8WfuZ+81P github.com/stretchr/testify v1.5.1/go.mod h1:5W2xD1RspED5o8YsWQXVCued0rvSQ+mT+I5cxcmMvtA= github.com/stretchr/testify v1.6.1/go.mod h1:6Fq8oRcR53rry900zMqJjRRixrwX3KX962/h/Wwjteg= github.com/stretchr/testify v1.7.0/go.mod h1:6Fq8oRcR53rry900zMqJjRRixrwX3KX962/h/Wwjteg= -github.com/stretchr/testify v1.7.1 h1:5TQK59W5E3v0r2duFAb7P95B6hEeOyEnHRa8MjYSMTY= -github.com/stretchr/testify v1.7.1/go.mod h1:6Fq8oRcR53rry900zMqJjRRixrwX3KX962/h/Wwjteg= +github.com/stretchr/testify v1.7.2 h1:4jaiDzPyXQvSd7D0EjG45355tLlV3VOECpq10pLC+8s= +github.com/stretchr/testify v1.7.2/go.mod h1:R6va5+xMeoiuVRoj+gSkQ7d3FALtqAAGI1FQKckRals= github.com/terraform-providers/terraform-provider-archive v1.3.0 h1:8WzDXMwTdTd4Z7KAUjnYwopk1DgGJ/DLH0xowJ8h+/8= github.com/terraform-providers/terraform-provider-archive v1.3.0/go.mod h1:7oAwNW55F65KauS++/XmAnrXhLfQRTYt549eYs4zU0w= github.com/terraform-providers/terraform-provider-http v1.2.0 h1:pOP/SNlLjB18CydtTJJwzkZGkHYX3LWzIoQpYQuBdyw= @@ -1477,8 +1477,8 @@ gopkg.in/cheggaaa/pb.v1 v1.0.27/go.mod h1:V/YB90LKu/1FcN3WVnfiiE5oMCibMjukxqG/qS gopkg.in/errgo.v2 v2.1.0/go.mod h1:hNsd1EY+bozCKY1Ytp96fpM3vjJbqLJn88ws8XvfDNI= gopkg.in/fsnotify.v1 v1.4.7/go.mod h1:Tz8NjZHkW78fSQdbUxIjBTcgA1z1m8ZHf0WmKUhAMys= gopkg.in/gemnasium/logrus-airbrake-hook.v2 v2.1.2/go.mod h1:Xk6kEKp8OKb+X14hQBKWaSkCsqBpgog8nAV2xsGOxlo= -gopkg.in/ini.v1 v1.66.4 h1:SsAcf+mM7mRZo2nJNGt8mZCjG8ZRaNGMURJw7BsIST4= -gopkg.in/ini.v1 v1.66.4/go.mod h1:pNLf8WUiyNEtQjuu5G5vTm06TEv9tsIgeAvK8hOrP4k= +gopkg.in/ini.v1 v1.66.6 h1:LATuAqN/shcYAOkv3wl2L4rkaKqkcgTBQjOyYDvcPKI= +gopkg.in/ini.v1 v1.66.6/go.mod h1:pNLf8WUiyNEtQjuu5G5vTm06TEv9tsIgeAvK8hOrP4k= gopkg.in/square/go-jose.v2 v2.3.1/go.mod h1:M9dMgbHiYLoDGQrXy7OpJDJWiKiU//h+vD76mk0e1AI= gopkg.in/square/go-jose.v2 v2.5.1/go.mod h1:M9dMgbHiYLoDGQrXy7OpJDJWiKiU//h+vD76mk0e1AI= gopkg.in/square/go-jose.v2 v2.6.0 h1:NGk74WTnPKBNUhNzQX7PYcTLUjoq7mzKk2OKbvwk2iI= @@ -1502,8 +1502,9 @@ gopkg.in/yaml.v2 v2.3.0/go.mod h1:hI93XBmqTisBFMUTm0b8Fm+jr3Dg1NNxqwp+5A1VGuI= gopkg.in/yaml.v2 v2.4.0 h1:D8xgwECY7CYvx+Y2n4sBz93Jn9JRvxdiyyo8CTfuKaY= gopkg.in/yaml.v2 v2.4.0/go.mod h1:RDklbk79AGWmwhnvt/jBztapEOGDOx6ZbXqjP6csGnQ= gopkg.in/yaml.v3 v3.0.0-20200313102051-9f266ea9e77c/go.mod h1:K4uyk7z7BCEPqu6E+C64Yfv1cQ7kz7rIZviUmN+EgEM= -gopkg.in/yaml.v3 v3.0.0-20210107192922-496545a6307b h1:h8qDotaEPuJATrMmW04NCwg7v22aHH28wwpauUhK9Oo= gopkg.in/yaml.v3 v3.0.0-20210107192922-496545a6307b/go.mod h1:K4uyk7z7BCEPqu6E+C64Yfv1cQ7kz7rIZviUmN+EgEM= +gopkg.in/yaml.v3 v3.0.1 h1:fxVm/GzAzEWqLHuvctI91KS9hhNmmWOoWu0XTYJS7CA= +gopkg.in/yaml.v3 v3.0.1/go.mod h1:K4uyk7z7BCEPqu6E+C64Yfv1cQ7kz7rIZviUmN+EgEM= gotest.tools v2.2.0+incompatible h1:VsBPFP1AI068pPrMxtb/S8Zkgf9xEmTLJjfM+P5UIEo= gotest.tools v2.2.0+incompatible/go.mod h1:DsYFclhRJ6vuDpmuTbkuFWG+y2sxOXAzmJt81HFBacw= gotest.tools/v3 v3.0.2 h1:kG1BFyqVHuQoVQiR1bWGnfz/fmHvvuiSPIV7rvl360E= diff --git a/sdk/dotnet/Ecs/Ocean.cs b/sdk/dotnet/Ecs/Ocean.cs index f26fbae2..3ee45e40 100644 --- a/sdk/dotnet/Ecs/Ocean.cs +++ b/sdk/dotnet/Ecs/Ocean.cs @@ -102,6 +102,7 @@ namespace Pulumi.SpotInst.Ecs /// Value = "fakeValue", /// }, /// }, + /// UseAsTemplateOnly = true, /// UserData = "echo hello world", /// UtilizeCommitments = false, /// UtilizeReservedInstances = false, @@ -276,6 +277,12 @@ public partial class Ocean : Pulumi.CustomResource [Output("updatePolicy")] public Output UpdatePolicy { get; private set; } = null!; + /// + /// launch specification defined on the Ocean object will function only as a template for virtual node groups. + /// + [Output("useAsTemplateOnly")] + public Output UseAsTemplateOnly { get; private set; } = null!; + /// /// Base64-encoded MIME user data to make available to the instances. /// @@ -520,6 +527,12 @@ public InputList Tags [Input("updatePolicy")] public Input? UpdatePolicy { get; set; } + /// + /// launch specification defined on the Ocean object will function only as a template for virtual node groups. + /// + [Input("useAsTemplateOnly")] + public Input? UseAsTemplateOnly { get; set; } + /// /// Base64-encoded MIME user data to make available to the instances. /// @@ -731,6 +744,12 @@ public InputList Tags [Input("updatePolicy")] public Input? UpdatePolicy { get; set; } + /// + /// launch specification defined on the Ocean object will function only as a template for virtual node groups. + /// + [Input("useAsTemplateOnly")] + public Input? UseAsTemplateOnly { get; set; } + /// /// Base64-encoded MIME user data to make available to the instances. /// diff --git a/sdk/dotnet/Gke/OceanImport.cs b/sdk/dotnet/Gke/OceanImport.cs index fa76e933..7f7e8f7d 100644 --- a/sdk/dotnet/Gke/OceanImport.cs +++ b/sdk/dotnet/Gke/OceanImport.cs @@ -55,6 +55,7 @@ namespace Pulumi.SpotInst.Gke /// EnableIntegrityMonitoring = true, /// EnableSecureBoot = true, /// }, + /// UseAsTemplateOnly = false, /// Whitelists = /// { /// "n1-standard-1", @@ -201,6 +202,12 @@ public partial class OceanImport : Pulumi.CustomResource [Output("updatePolicy")] public Output UpdatePolicy { get; private set; } = null!; + /// + /// launch specification defined on the Ocean object will function only as a template for virtual node groups. + /// + [Output("useAsTemplateOnly")] + public Output UseAsTemplateOnly { get; private set; } = null!; + /// /// Instance types allowed in the Ocean cluster. /// @@ -342,6 +349,12 @@ public InputList Strategies [Input("updatePolicy")] public Input? UpdatePolicy { get; set; } + /// + /// launch specification defined on the Ocean object will function only as a template for virtual node groups. + /// + [Input("useAsTemplateOnly")] + public Input? UseAsTemplateOnly { get; set; } + [Input("whitelists")] private InputList? _whitelists; @@ -453,6 +466,12 @@ public InputList Strategies [Input("updatePolicy")] public Input? UpdatePolicy { get; set; } + /// + /// launch specification defined on the Ocean object will function only as a template for virtual node groups. + /// + [Input("useAsTemplateOnly")] + public Input? UseAsTemplateOnly { get; set; } + [Input("whitelists")] private InputList? _whitelists; diff --git a/sdk/go/spotinst/ecs/ocean.go b/sdk/go/spotinst/ecs/ocean.go index faaa48b4..9c344b2e 100644 --- a/sdk/go/spotinst/ecs/ocean.go +++ b/sdk/go/spotinst/ecs/ocean.go @@ -89,6 +89,7 @@ import ( // Value: pulumi.String("fakeValue"), // }, // }, +// UseAsTemplateOnly: pulumi.Bool(true), // UserData: pulumi.String("echo hello world"), // UtilizeCommitments: pulumi.Bool(false), // UtilizeReservedInstances: pulumi.Bool(false), @@ -168,6 +169,8 @@ type Ocean struct { Tags OceanTagArrayOutput `pulumi:"tags"` // While used, you can control whether the group should perform a deployment after an update to the configuration. UpdatePolicy OceanUpdatePolicyPtrOutput `pulumi:"updatePolicy"` + // launch specification defined on the Ocean object will function only as a template for virtual node groups. + UseAsTemplateOnly pulumi.BoolPtrOutput `pulumi:"useAsTemplateOnly"` // Base64-encoded MIME user data to make available to the instances. UserData pulumi.StringPtrOutput `pulumi:"userData"` // If savings plans exist, Ocean will utilize them before launching Spot instances. @@ -267,6 +270,8 @@ type oceanState struct { Tags []OceanTag `pulumi:"tags"` // While used, you can control whether the group should perform a deployment after an update to the configuration. UpdatePolicy *OceanUpdatePolicy `pulumi:"updatePolicy"` + // launch specification defined on the Ocean object will function only as a template for virtual node groups. + UseAsTemplateOnly *bool `pulumi:"useAsTemplateOnly"` // Base64-encoded MIME user data to make available to the instances. UserData *string `pulumi:"userData"` // If savings plans exist, Ocean will utilize them before launching Spot instances. @@ -326,6 +331,8 @@ type OceanState struct { Tags OceanTagArrayInput // While used, you can control whether the group should perform a deployment after an update to the configuration. UpdatePolicy OceanUpdatePolicyPtrInput + // launch specification defined on the Ocean object will function only as a template for virtual node groups. + UseAsTemplateOnly pulumi.BoolPtrInput // Base64-encoded MIME user data to make available to the instances. UserData pulumi.StringPtrInput // If savings plans exist, Ocean will utilize them before launching Spot instances. @@ -389,6 +396,8 @@ type oceanArgs struct { Tags []OceanTag `pulumi:"tags"` // While used, you can control whether the group should perform a deployment after an update to the configuration. UpdatePolicy *OceanUpdatePolicy `pulumi:"updatePolicy"` + // launch specification defined on the Ocean object will function only as a template for virtual node groups. + UseAsTemplateOnly *bool `pulumi:"useAsTemplateOnly"` // Base64-encoded MIME user data to make available to the instances. UserData *string `pulumi:"userData"` // If savings plans exist, Ocean will utilize them before launching Spot instances. @@ -449,6 +458,8 @@ type OceanArgs struct { Tags OceanTagArrayInput // While used, you can control whether the group should perform a deployment after an update to the configuration. UpdatePolicy OceanUpdatePolicyPtrInput + // launch specification defined on the Ocean object will function only as a template for virtual node groups. + UseAsTemplateOnly pulumi.BoolPtrInput // Base64-encoded MIME user data to make available to the instances. UserData pulumi.StringPtrInput // If savings plans exist, Ocean will utilize them before launching Spot instances. @@ -666,6 +677,11 @@ func (o OceanOutput) UpdatePolicy() OceanUpdatePolicyPtrOutput { return o.ApplyT(func(v *Ocean) OceanUpdatePolicyPtrOutput { return v.UpdatePolicy }).(OceanUpdatePolicyPtrOutput) } +// launch specification defined on the Ocean object will function only as a template for virtual node groups. +func (o OceanOutput) UseAsTemplateOnly() pulumi.BoolPtrOutput { + return o.ApplyT(func(v *Ocean) pulumi.BoolPtrOutput { return v.UseAsTemplateOnly }).(pulumi.BoolPtrOutput) +} + // Base64-encoded MIME user data to make available to the instances. func (o OceanOutput) UserData() pulumi.StringPtrOutput { return o.ApplyT(func(v *Ocean) pulumi.StringPtrOutput { return v.UserData }).(pulumi.StringPtrOutput) diff --git a/sdk/go/spotinst/gke/oceanImport.go b/sdk/go/spotinst/gke/oceanImport.go index 8bf58af2..214a9eb7 100644 --- a/sdk/go/spotinst/gke/oceanImport.go +++ b/sdk/go/spotinst/gke/oceanImport.go @@ -51,6 +51,7 @@ import ( // EnableIntegrityMonitoring: pulumi.Bool(true), // EnableSecureBoot: pulumi.Bool(true), // }, +// UseAsTemplateOnly: pulumi.Bool(false), // Whitelists: pulumi.StringArray{ // pulumi.String("n1-standard-1"), // pulumi.String("n1-standard-2"), @@ -152,6 +153,8 @@ type OceanImport struct { ShieldedInstanceConfig OceanImportShieldedInstanceConfigOutput `pulumi:"shieldedInstanceConfig"` Strategies OceanImportStrategyArrayOutput `pulumi:"strategies"` UpdatePolicy OceanImportUpdatePolicyPtrOutput `pulumi:"updatePolicy"` + // launch specification defined on the Ocean object will function only as a template for virtual node groups. + UseAsTemplateOnly pulumi.BoolPtrOutput `pulumi:"useAsTemplateOnly"` // Instance types allowed in the Ocean cluster. Whitelists pulumi.StringArrayOutput `pulumi:"whitelists"` } @@ -216,6 +219,8 @@ type oceanImportState struct { ShieldedInstanceConfig *OceanImportShieldedInstanceConfig `pulumi:"shieldedInstanceConfig"` Strategies []OceanImportStrategy `pulumi:"strategies"` UpdatePolicy *OceanImportUpdatePolicy `pulumi:"updatePolicy"` + // launch specification defined on the Ocean object will function only as a template for virtual node groups. + UseAsTemplateOnly *bool `pulumi:"useAsTemplateOnly"` // Instance types allowed in the Ocean cluster. Whitelists []string `pulumi:"whitelists"` } @@ -246,6 +251,8 @@ type OceanImportState struct { ShieldedInstanceConfig OceanImportShieldedInstanceConfigPtrInput Strategies OceanImportStrategyArrayInput UpdatePolicy OceanImportUpdatePolicyPtrInput + // launch specification defined on the Ocean object will function only as a template for virtual node groups. + UseAsTemplateOnly pulumi.BoolPtrInput // Instance types allowed in the Ocean cluster. Whitelists pulumi.StringArrayInput } @@ -279,6 +286,8 @@ type oceanImportArgs struct { ShieldedInstanceConfig *OceanImportShieldedInstanceConfig `pulumi:"shieldedInstanceConfig"` Strategies []OceanImportStrategy `pulumi:"strategies"` UpdatePolicy *OceanImportUpdatePolicy `pulumi:"updatePolicy"` + // launch specification defined on the Ocean object will function only as a template for virtual node groups. + UseAsTemplateOnly *bool `pulumi:"useAsTemplateOnly"` // Instance types allowed in the Ocean cluster. Whitelists []string `pulumi:"whitelists"` } @@ -309,6 +318,8 @@ type OceanImportArgs struct { ShieldedInstanceConfig OceanImportShieldedInstanceConfigPtrInput Strategies OceanImportStrategyArrayInput UpdatePolicy OceanImportUpdatePolicyPtrInput + // launch specification defined on the Ocean object will function only as a template for virtual node groups. + UseAsTemplateOnly pulumi.BoolPtrInput // Instance types allowed in the Ocean cluster. Whitelists pulumi.StringArrayInput } @@ -467,6 +478,11 @@ func (o OceanImportOutput) UpdatePolicy() OceanImportUpdatePolicyPtrOutput { return o.ApplyT(func(v *OceanImport) OceanImportUpdatePolicyPtrOutput { return v.UpdatePolicy }).(OceanImportUpdatePolicyPtrOutput) } +// launch specification defined on the Ocean object will function only as a template for virtual node groups. +func (o OceanImportOutput) UseAsTemplateOnly() pulumi.BoolPtrOutput { + return o.ApplyT(func(v *OceanImport) pulumi.BoolPtrOutput { return v.UseAsTemplateOnly }).(pulumi.BoolPtrOutput) +} + // Instance types allowed in the Ocean cluster. func (o OceanImportOutput) Whitelists() pulumi.StringArrayOutput { return o.ApplyT(func(v *OceanImport) pulumi.StringArrayOutput { return v.Whitelists }).(pulumi.StringArrayOutput) diff --git a/sdk/nodejs/ecs/ocean.ts b/sdk/nodejs/ecs/ocean.ts index 276d07ff..75b6f888 100644 --- a/sdk/nodejs/ecs/ocean.ts +++ b/sdk/nodejs/ecs/ocean.ts @@ -68,6 +68,7 @@ import * as utilities from "../utilities"; * key: "fakeKey", * value: "fakeValue", * }], + * useAsTemplateOnly: true, * userData: "echo hello world", * utilizeCommitments: false, * utilizeReservedInstances: false, @@ -204,6 +205,10 @@ export class Ocean extends pulumi.CustomResource { * While used, you can control whether the group should perform a deployment after an update to the configuration. */ public readonly updatePolicy!: pulumi.Output; + /** + * launch specification defined on the Ocean object will function only as a template for virtual node groups. + */ + public readonly useAsTemplateOnly!: pulumi.Output; /** * Base64-encoded MIME user data to make available to the instances. */ @@ -258,6 +263,7 @@ export class Ocean extends pulumi.CustomResource { resourceInputs["subnetIds"] = state ? state.subnetIds : undefined; resourceInputs["tags"] = state ? state.tags : undefined; resourceInputs["updatePolicy"] = state ? state.updatePolicy : undefined; + resourceInputs["useAsTemplateOnly"] = state ? state.useAsTemplateOnly : undefined; resourceInputs["userData"] = state ? state.userData : undefined; resourceInputs["utilizeCommitments"] = state ? state.utilizeCommitments : undefined; resourceInputs["utilizeReservedInstances"] = state ? state.utilizeReservedInstances : undefined; @@ -300,6 +306,7 @@ export class Ocean extends pulumi.CustomResource { resourceInputs["subnetIds"] = args ? args.subnetIds : undefined; resourceInputs["tags"] = args ? args.tags : undefined; resourceInputs["updatePolicy"] = args ? args.updatePolicy : undefined; + resourceInputs["useAsTemplateOnly"] = args ? args.useAsTemplateOnly : undefined; resourceInputs["userData"] = args ? args.userData : undefined; resourceInputs["utilizeCommitments"] = args ? args.utilizeCommitments : undefined; resourceInputs["utilizeReservedInstances"] = args ? args.utilizeReservedInstances : undefined; @@ -410,6 +417,10 @@ export interface OceanState { * While used, you can control whether the group should perform a deployment after an update to the configuration. */ updatePolicy?: pulumi.Input; + /** + * launch specification defined on the Ocean object will function only as a template for virtual node groups. + */ + useAsTemplateOnly?: pulumi.Input; /** * Base64-encoded MIME user data to make available to the instances. */ @@ -528,6 +539,10 @@ export interface OceanArgs { * While used, you can control whether the group should perform a deployment after an update to the configuration. */ updatePolicy?: pulumi.Input; + /** + * launch specification defined on the Ocean object will function only as a template for virtual node groups. + */ + useAsTemplateOnly?: pulumi.Input; /** * Base64-encoded MIME user data to make available to the instances. */ diff --git a/sdk/nodejs/gke/oceanImport.ts b/sdk/nodejs/gke/oceanImport.ts index 0c4ec34c..cc24d739 100644 --- a/sdk/nodejs/gke/oceanImport.ts +++ b/sdk/nodejs/gke/oceanImport.ts @@ -36,6 +36,7 @@ import * as utilities from "../utilities"; * enableIntegrityMonitoring: true, * enableSecureBoot: true, * }, + * useAsTemplateOnly: false, * whitelists: [ * "n1-standard-1", * "n1-standard-2", @@ -150,6 +151,10 @@ export class OceanImport extends pulumi.CustomResource { public readonly shieldedInstanceConfig!: pulumi.Output; public readonly strategies!: pulumi.Output; public readonly updatePolicy!: pulumi.Output; + /** + * launch specification defined on the Ocean object will function only as a template for virtual node groups. + */ + public readonly useAsTemplateOnly!: pulumi.Output; /** * Instance types allowed in the Ocean cluster. */ @@ -182,6 +187,7 @@ export class OceanImport extends pulumi.CustomResource { resourceInputs["shieldedInstanceConfig"] = state ? state.shieldedInstanceConfig : undefined; resourceInputs["strategies"] = state ? state.strategies : undefined; resourceInputs["updatePolicy"] = state ? state.updatePolicy : undefined; + resourceInputs["useAsTemplateOnly"] = state ? state.useAsTemplateOnly : undefined; resourceInputs["whitelists"] = state ? state.whitelists : undefined; } else { const args = argsOrState as OceanImportArgs | undefined; @@ -204,6 +210,7 @@ export class OceanImport extends pulumi.CustomResource { resourceInputs["shieldedInstanceConfig"] = args ? args.shieldedInstanceConfig : undefined; resourceInputs["strategies"] = args ? args.strategies : undefined; resourceInputs["updatePolicy"] = args ? args.updatePolicy : undefined; + resourceInputs["useAsTemplateOnly"] = args ? args.useAsTemplateOnly : undefined; resourceInputs["whitelists"] = args ? args.whitelists : undefined; resourceInputs["clusterControllerId"] = undefined /*out*/; } @@ -263,6 +270,10 @@ export interface OceanImportState { shieldedInstanceConfig?: pulumi.Input; strategies?: pulumi.Input[]>; updatePolicy?: pulumi.Input; + /** + * launch specification defined on the Ocean object will function only as a template for virtual node groups. + */ + useAsTemplateOnly?: pulumi.Input; /** * Instance types allowed in the Ocean cluster. */ @@ -319,6 +330,10 @@ export interface OceanImportArgs { shieldedInstanceConfig?: pulumi.Input; strategies?: pulumi.Input[]>; updatePolicy?: pulumi.Input; + /** + * launch specification defined on the Ocean object will function only as a template for virtual node groups. + */ + useAsTemplateOnly?: pulumi.Input; /** * Instance types allowed in the Ocean cluster. */ diff --git a/sdk/python/pulumi_spotinst/ecs/ocean.py b/sdk/python/pulumi_spotinst/ecs/ocean.py index 78fc6fb2..84bb26a0 100644 --- a/sdk/python/pulumi_spotinst/ecs/ocean.py +++ b/sdk/python/pulumi_spotinst/ecs/ocean.py @@ -39,6 +39,7 @@ def __init__(__self__, *, spot_percentage: Optional[pulumi.Input[int]] = None, tags: Optional[pulumi.Input[Sequence[pulumi.Input['OceanTagArgs']]]] = None, update_policy: Optional[pulumi.Input['OceanUpdatePolicyArgs']] = None, + use_as_template_only: Optional[pulumi.Input[bool]] = None, user_data: Optional[pulumi.Input[str]] = None, utilize_commitments: Optional[pulumi.Input[bool]] = None, utilize_reserved_instances: Optional[pulumi.Input[bool]] = None, @@ -69,6 +70,7 @@ def __init__(__self__, *, :param pulumi.Input[int] spot_percentage: The percentage of Spot instances that would spin up from the `desired_capacity` number. :param pulumi.Input[Sequence[pulumi.Input['OceanTagArgs']]] tags: Optionally adds tags to instances launched in an Ocean cluster. :param pulumi.Input['OceanUpdatePolicyArgs'] update_policy: While used, you can control whether the group should perform a deployment after an update to the configuration. + :param pulumi.Input[bool] use_as_template_only: launch specification defined on the Ocean object will function only as a template for virtual node groups. :param pulumi.Input[str] user_data: Base64-encoded MIME user data to make available to the instances. :param pulumi.Input[bool] utilize_commitments: If savings plans exist, Ocean will utilize them before launching Spot instances. :param pulumi.Input[bool] utilize_reserved_instances: If Reserved instances exist, Ocean will utilize them before launching Spot instances. @@ -118,6 +120,8 @@ def __init__(__self__, *, pulumi.set(__self__, "tags", tags) if update_policy is not None: pulumi.set(__self__, "update_policy", update_policy) + if use_as_template_only is not None: + pulumi.set(__self__, "use_as_template_only", use_as_template_only) if user_data is not None: pulumi.set(__self__, "user_data", user_data) if utilize_commitments is not None: @@ -415,6 +419,18 @@ def update_policy(self) -> Optional[pulumi.Input['OceanUpdatePolicyArgs']]: def update_policy(self, value: Optional[pulumi.Input['OceanUpdatePolicyArgs']]): pulumi.set(self, "update_policy", value) + @property + @pulumi.getter(name="useAsTemplateOnly") + def use_as_template_only(self) -> Optional[pulumi.Input[bool]]: + """ + launch specification defined on the Ocean object will function only as a template for virtual node groups. + """ + return pulumi.get(self, "use_as_template_only") + + @use_as_template_only.setter + def use_as_template_only(self, value: Optional[pulumi.Input[bool]]): + pulumi.set(self, "use_as_template_only", value) + @property @pulumi.getter(name="userData") def user_data(self) -> Optional[pulumi.Input[str]]: @@ -491,6 +507,7 @@ def __init__(__self__, *, subnet_ids: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None, tags: Optional[pulumi.Input[Sequence[pulumi.Input['OceanTagArgs']]]] = None, update_policy: Optional[pulumi.Input['OceanUpdatePolicyArgs']] = None, + use_as_template_only: Optional[pulumi.Input[bool]] = None, user_data: Optional[pulumi.Input[str]] = None, utilize_commitments: Optional[pulumi.Input[bool]] = None, utilize_reserved_instances: Optional[pulumi.Input[bool]] = None, @@ -521,6 +538,7 @@ def __init__(__self__, *, :param pulumi.Input[Sequence[pulumi.Input[str]]] subnet_ids: A comma-separated list of subnet identifiers for the Ocean cluster. Subnet IDs should be configured with auto assign public ip. :param pulumi.Input[Sequence[pulumi.Input['OceanTagArgs']]] tags: Optionally adds tags to instances launched in an Ocean cluster. :param pulumi.Input['OceanUpdatePolicyArgs'] update_policy: While used, you can control whether the group should perform a deployment after an update to the configuration. + :param pulumi.Input[bool] use_as_template_only: launch specification defined on the Ocean object will function only as a template for virtual node groups. :param pulumi.Input[str] user_data: Base64-encoded MIME user data to make available to the instances. :param pulumi.Input[bool] utilize_commitments: If savings plans exist, Ocean will utilize them before launching Spot instances. :param pulumi.Input[bool] utilize_reserved_instances: If Reserved instances exist, Ocean will utilize them before launching Spot instances. @@ -574,6 +592,8 @@ def __init__(__self__, *, pulumi.set(__self__, "tags", tags) if update_policy is not None: pulumi.set(__self__, "update_policy", update_policy) + if use_as_template_only is not None: + pulumi.set(__self__, "use_as_template_only", use_as_template_only) if user_data is not None: pulumi.set(__self__, "user_data", user_data) if utilize_commitments is not None: @@ -871,6 +891,18 @@ def update_policy(self) -> Optional[pulumi.Input['OceanUpdatePolicyArgs']]: def update_policy(self, value: Optional[pulumi.Input['OceanUpdatePolicyArgs']]): pulumi.set(self, "update_policy", value) + @property + @pulumi.getter(name="useAsTemplateOnly") + def use_as_template_only(self) -> Optional[pulumi.Input[bool]]: + """ + launch specification defined on the Ocean object will function only as a template for virtual node groups. + """ + return pulumi.get(self, "use_as_template_only") + + @use_as_template_only.setter + def use_as_template_only(self, value: Optional[pulumi.Input[bool]]): + pulumi.set(self, "use_as_template_only", value) + @property @pulumi.getter(name="userData") def user_data(self) -> Optional[pulumi.Input[str]]: @@ -949,6 +981,7 @@ def __init__(__self__, subnet_ids: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None, tags: Optional[pulumi.Input[Sequence[pulumi.Input[pulumi.InputType['OceanTagArgs']]]]] = None, update_policy: Optional[pulumi.Input[pulumi.InputType['OceanUpdatePolicyArgs']]] = None, + use_as_template_only: Optional[pulumi.Input[bool]] = None, user_data: Optional[pulumi.Input[str]] = None, utilize_commitments: Optional[pulumi.Input[bool]] = None, utilize_reserved_instances: Optional[pulumi.Input[bool]] = None, @@ -1017,6 +1050,7 @@ def __init__(__self__, key="fakeKey", value="fakeValue", )], + use_as_template_only=True, user_data="echo hello world", utilize_commitments=False, utilize_reserved_instances=False, @@ -1054,6 +1088,7 @@ def __init__(__self__, :param pulumi.Input[Sequence[pulumi.Input[str]]] subnet_ids: A comma-separated list of subnet identifiers for the Ocean cluster. Subnet IDs should be configured with auto assign public ip. :param pulumi.Input[Sequence[pulumi.Input[pulumi.InputType['OceanTagArgs']]]] tags: Optionally adds tags to instances launched in an Ocean cluster. :param pulumi.Input[pulumi.InputType['OceanUpdatePolicyArgs']] update_policy: While used, you can control whether the group should perform a deployment after an update to the configuration. + :param pulumi.Input[bool] use_as_template_only: launch specification defined on the Ocean object will function only as a template for virtual node groups. :param pulumi.Input[str] user_data: Base64-encoded MIME user data to make available to the instances. :param pulumi.Input[bool] utilize_commitments: If savings plans exist, Ocean will utilize them before launching Spot instances. :param pulumi.Input[bool] utilize_reserved_instances: If Reserved instances exist, Ocean will utilize them before launching Spot instances. @@ -1128,6 +1163,7 @@ def __init__(__self__, key="fakeKey", value="fakeValue", )], + use_as_template_only=True, user_data="echo hello world", utilize_commitments=False, utilize_reserved_instances=False, @@ -1178,6 +1214,7 @@ def _internal_init(__self__, subnet_ids: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None, tags: Optional[pulumi.Input[Sequence[pulumi.Input[pulumi.InputType['OceanTagArgs']]]]] = None, update_policy: Optional[pulumi.Input[pulumi.InputType['OceanUpdatePolicyArgs']]] = None, + use_as_template_only: Optional[pulumi.Input[bool]] = None, user_data: Optional[pulumi.Input[str]] = None, utilize_commitments: Optional[pulumi.Input[bool]] = None, utilize_reserved_instances: Optional[pulumi.Input[bool]] = None, @@ -1226,6 +1263,7 @@ def _internal_init(__self__, __props__.__dict__["subnet_ids"] = subnet_ids __props__.__dict__["tags"] = tags __props__.__dict__["update_policy"] = update_policy + __props__.__dict__["use_as_template_only"] = use_as_template_only __props__.__dict__["user_data"] = user_data __props__.__dict__["utilize_commitments"] = utilize_commitments __props__.__dict__["utilize_reserved_instances"] = utilize_reserved_instances @@ -1264,6 +1302,7 @@ def get(resource_name: str, subnet_ids: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None, tags: Optional[pulumi.Input[Sequence[pulumi.Input[pulumi.InputType['OceanTagArgs']]]]] = None, update_policy: Optional[pulumi.Input[pulumi.InputType['OceanUpdatePolicyArgs']]] = None, + use_as_template_only: Optional[pulumi.Input[bool]] = None, user_data: Optional[pulumi.Input[str]] = None, utilize_commitments: Optional[pulumi.Input[bool]] = None, utilize_reserved_instances: Optional[pulumi.Input[bool]] = None, @@ -1299,6 +1338,7 @@ def get(resource_name: str, :param pulumi.Input[Sequence[pulumi.Input[str]]] subnet_ids: A comma-separated list of subnet identifiers for the Ocean cluster. Subnet IDs should be configured with auto assign public ip. :param pulumi.Input[Sequence[pulumi.Input[pulumi.InputType['OceanTagArgs']]]] tags: Optionally adds tags to instances launched in an Ocean cluster. :param pulumi.Input[pulumi.InputType['OceanUpdatePolicyArgs']] update_policy: While used, you can control whether the group should perform a deployment after an update to the configuration. + :param pulumi.Input[bool] use_as_template_only: launch specification defined on the Ocean object will function only as a template for virtual node groups. :param pulumi.Input[str] user_data: Base64-encoded MIME user data to make available to the instances. :param pulumi.Input[bool] utilize_commitments: If savings plans exist, Ocean will utilize them before launching Spot instances. :param pulumi.Input[bool] utilize_reserved_instances: If Reserved instances exist, Ocean will utilize them before launching Spot instances. @@ -1332,6 +1372,7 @@ def get(resource_name: str, __props__.__dict__["subnet_ids"] = subnet_ids __props__.__dict__["tags"] = tags __props__.__dict__["update_policy"] = update_policy + __props__.__dict__["use_as_template_only"] = use_as_template_only __props__.__dict__["user_data"] = user_data __props__.__dict__["utilize_commitments"] = utilize_commitments __props__.__dict__["utilize_reserved_instances"] = utilize_reserved_instances @@ -1530,6 +1571,14 @@ def update_policy(self) -> pulumi.Output[Optional['outputs.OceanUpdatePolicy']]: """ return pulumi.get(self, "update_policy") + @property + @pulumi.getter(name="useAsTemplateOnly") + def use_as_template_only(self) -> pulumi.Output[Optional[bool]]: + """ + launch specification defined on the Ocean object will function only as a template for virtual node groups. + """ + return pulumi.get(self, "use_as_template_only") + @property @pulumi.getter(name="userData") def user_data(self) -> pulumi.Output[Optional[str]]: diff --git a/sdk/python/pulumi_spotinst/gke/ocean_import.py b/sdk/python/pulumi_spotinst/gke/ocean_import.py index 10eb6041..4fe13054 100644 --- a/sdk/python/pulumi_spotinst/gke/ocean_import.py +++ b/sdk/python/pulumi_spotinst/gke/ocean_import.py @@ -28,6 +28,7 @@ def __init__(__self__, *, shielded_instance_config: Optional[pulumi.Input['OceanImportShieldedInstanceConfigArgs']] = None, strategies: Optional[pulumi.Input[Sequence[pulumi.Input['OceanImportStrategyArgs']]]] = None, update_policy: Optional[pulumi.Input['OceanImportUpdatePolicyArgs']] = None, + use_as_template_only: Optional[pulumi.Input[bool]] = None, whitelists: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None): """ The set of arguments for constructing a OceanImport resource. @@ -42,6 +43,7 @@ def __init__(__self__, *, :param pulumi.Input[str] root_volume_type: The root volume disk type. :param pulumi.Input[Sequence[pulumi.Input['OceanImportScheduledTaskArgs']]] scheduled_tasks: Set scheduling object. :param pulumi.Input['OceanImportShieldedInstanceConfigArgs'] shielded_instance_config: The Ocean shielded instance configuration object. + :param pulumi.Input[bool] use_as_template_only: launch specification defined on the Ocean object will function only as a template for virtual node groups. :param pulumi.Input[Sequence[pulumi.Input[str]]] whitelists: Instance types allowed in the Ocean cluster. """ pulumi.set(__self__, "cluster_name", cluster_name) @@ -68,6 +70,8 @@ def __init__(__self__, *, pulumi.set(__self__, "strategies", strategies) if update_policy is not None: pulumi.set(__self__, "update_policy", update_policy) + if use_as_template_only is not None: + pulumi.set(__self__, "use_as_template_only", use_as_template_only) if whitelists is not None: pulumi.set(__self__, "whitelists", whitelists) @@ -221,6 +225,18 @@ def update_policy(self) -> Optional[pulumi.Input['OceanImportUpdatePolicyArgs']] def update_policy(self, value: Optional[pulumi.Input['OceanImportUpdatePolicyArgs']]): pulumi.set(self, "update_policy", value) + @property + @pulumi.getter(name="useAsTemplateOnly") + def use_as_template_only(self) -> Optional[pulumi.Input[bool]]: + """ + launch specification defined on the Ocean object will function only as a template for virtual node groups. + """ + return pulumi.get(self, "use_as_template_only") + + @use_as_template_only.setter + def use_as_template_only(self, value: Optional[pulumi.Input[bool]]): + pulumi.set(self, "use_as_template_only", value) + @property @pulumi.getter def whitelists(self) -> Optional[pulumi.Input[Sequence[pulumi.Input[str]]]]: @@ -251,6 +267,7 @@ def __init__(__self__, *, shielded_instance_config: Optional[pulumi.Input['OceanImportShieldedInstanceConfigArgs']] = None, strategies: Optional[pulumi.Input[Sequence[pulumi.Input['OceanImportStrategyArgs']]]] = None, update_policy: Optional[pulumi.Input['OceanImportUpdatePolicyArgs']] = None, + use_as_template_only: Optional[pulumi.Input[bool]] = None, whitelists: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None): """ Input properties used for looking up and filtering OceanImport resources. @@ -265,6 +282,7 @@ def __init__(__self__, *, :param pulumi.Input[str] root_volume_type: The root volume disk type. :param pulumi.Input[Sequence[pulumi.Input['OceanImportScheduledTaskArgs']]] scheduled_tasks: Set scheduling object. :param pulumi.Input['OceanImportShieldedInstanceConfigArgs'] shielded_instance_config: The Ocean shielded instance configuration object. + :param pulumi.Input[bool] use_as_template_only: launch specification defined on the Ocean object will function only as a template for virtual node groups. :param pulumi.Input[Sequence[pulumi.Input[str]]] whitelists: Instance types allowed in the Ocean cluster. """ if autoscaler is not None: @@ -295,6 +313,8 @@ def __init__(__self__, *, pulumi.set(__self__, "strategies", strategies) if update_policy is not None: pulumi.set(__self__, "update_policy", update_policy) + if use_as_template_only is not None: + pulumi.set(__self__, "use_as_template_only", use_as_template_only) if whitelists is not None: pulumi.set(__self__, "whitelists", whitelists) @@ -457,6 +477,18 @@ def update_policy(self) -> Optional[pulumi.Input['OceanImportUpdatePolicyArgs']] def update_policy(self, value: Optional[pulumi.Input['OceanImportUpdatePolicyArgs']]): pulumi.set(self, "update_policy", value) + @property + @pulumi.getter(name="useAsTemplateOnly") + def use_as_template_only(self) -> Optional[pulumi.Input[bool]]: + """ + launch specification defined on the Ocean object will function only as a template for virtual node groups. + """ + return pulumi.get(self, "use_as_template_only") + + @use_as_template_only.setter + def use_as_template_only(self, value: Optional[pulumi.Input[bool]]): + pulumi.set(self, "use_as_template_only", value) + @property @pulumi.getter def whitelists(self) -> Optional[pulumi.Input[Sequence[pulumi.Input[str]]]]: @@ -488,6 +520,7 @@ def __init__(__self__, shielded_instance_config: Optional[pulumi.Input[pulumi.InputType['OceanImportShieldedInstanceConfigArgs']]] = None, strategies: Optional[pulumi.Input[Sequence[pulumi.Input[pulumi.InputType['OceanImportStrategyArgs']]]]] = None, update_policy: Optional[pulumi.Input[pulumi.InputType['OceanImportUpdatePolicyArgs']]] = None, + use_as_template_only: Optional[pulumi.Input[bool]] = None, whitelists: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None, __props__=None): """ @@ -521,6 +554,7 @@ def __init__(__self__, enable_integrity_monitoring=True, enable_secure_boot=True, ), + use_as_template_only=False, whitelists=[ "n1-standard-1", "n1-standard-2", @@ -572,6 +606,7 @@ def __init__(__self__, :param pulumi.Input[str] root_volume_type: The root volume disk type. :param pulumi.Input[Sequence[pulumi.Input[pulumi.InputType['OceanImportScheduledTaskArgs']]]] scheduled_tasks: Set scheduling object. :param pulumi.Input[pulumi.InputType['OceanImportShieldedInstanceConfigArgs']] shielded_instance_config: The Ocean shielded instance configuration object. + :param pulumi.Input[bool] use_as_template_only: launch specification defined on the Ocean object will function only as a template for virtual node groups. :param pulumi.Input[Sequence[pulumi.Input[str]]] whitelists: Instance types allowed in the Ocean cluster. """ ... @@ -611,6 +646,7 @@ def __init__(__self__, enable_integrity_monitoring=True, enable_secure_boot=True, ), + use_as_template_only=False, whitelists=[ "n1-standard-1", "n1-standard-2", @@ -677,6 +713,7 @@ def _internal_init(__self__, shielded_instance_config: Optional[pulumi.Input[pulumi.InputType['OceanImportShieldedInstanceConfigArgs']]] = None, strategies: Optional[pulumi.Input[Sequence[pulumi.Input[pulumi.InputType['OceanImportStrategyArgs']]]]] = None, update_policy: Optional[pulumi.Input[pulumi.InputType['OceanImportUpdatePolicyArgs']]] = None, + use_as_template_only: Optional[pulumi.Input[bool]] = None, whitelists: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None, __props__=None): if opts is None: @@ -707,6 +744,7 @@ def _internal_init(__self__, __props__.__dict__["shielded_instance_config"] = shielded_instance_config __props__.__dict__["strategies"] = strategies __props__.__dict__["update_policy"] = update_policy + __props__.__dict__["use_as_template_only"] = use_as_template_only __props__.__dict__["whitelists"] = whitelists __props__.__dict__["cluster_controller_id"] = None super(OceanImport, __self__).__init__( @@ -733,6 +771,7 @@ def get(resource_name: str, shielded_instance_config: Optional[pulumi.Input[pulumi.InputType['OceanImportShieldedInstanceConfigArgs']]] = None, strategies: Optional[pulumi.Input[Sequence[pulumi.Input[pulumi.InputType['OceanImportStrategyArgs']]]]] = None, update_policy: Optional[pulumi.Input[pulumi.InputType['OceanImportUpdatePolicyArgs']]] = None, + use_as_template_only: Optional[pulumi.Input[bool]] = None, whitelists: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None) -> 'OceanImport': """ Get an existing OceanImport resource's state with the given name, id, and optional extra @@ -752,6 +791,7 @@ def get(resource_name: str, :param pulumi.Input[str] root_volume_type: The root volume disk type. :param pulumi.Input[Sequence[pulumi.Input[pulumi.InputType['OceanImportScheduledTaskArgs']]]] scheduled_tasks: Set scheduling object. :param pulumi.Input[pulumi.InputType['OceanImportShieldedInstanceConfigArgs']] shielded_instance_config: The Ocean shielded instance configuration object. + :param pulumi.Input[bool] use_as_template_only: launch specification defined on the Ocean object will function only as a template for virtual node groups. :param pulumi.Input[Sequence[pulumi.Input[str]]] whitelists: Instance types allowed in the Ocean cluster. """ opts = pulumi.ResourceOptions.merge(opts, pulumi.ResourceOptions(id=id)) @@ -772,6 +812,7 @@ def get(resource_name: str, __props__.__dict__["shielded_instance_config"] = shielded_instance_config __props__.__dict__["strategies"] = strategies __props__.__dict__["update_policy"] = update_policy + __props__.__dict__["use_as_template_only"] = use_as_template_only __props__.__dict__["whitelists"] = whitelists return OceanImport(resource_name, opts=opts, __props__=__props__) @@ -878,6 +919,14 @@ def strategies(self) -> pulumi.Output[Optional[Sequence['outputs.OceanImportStra def update_policy(self) -> pulumi.Output[Optional['outputs.OceanImportUpdatePolicy']]: return pulumi.get(self, "update_policy") + @property + @pulumi.getter(name="useAsTemplateOnly") + def use_as_template_only(self) -> pulumi.Output[Optional[bool]]: + """ + launch specification defined on the Ocean object will function only as a template for virtual node groups. + """ + return pulumi.get(self, "use_as_template_only") + @property @pulumi.getter def whitelists(self) -> pulumi.Output[Optional[Sequence[str]]]: