diff --git a/CHANGELOG.md b/CHANGELOG.md
index 7ef43adb..82e00d33 100644
--- a/CHANGELOG.md
+++ b/CHANGELOG.md
@@ -2,7 +2,7 @@ CHANGELOG
=========
## HEAD (Unreleased)
-_(none)_
+* Upgrade to v1.46.0 of the SpotInst Terraform Provider
---
diff --git a/Makefile b/Makefile
index f4d438de..89e3f527 100644
--- a/Makefile
+++ b/Makefile
@@ -82,6 +82,9 @@ clean::
install_plugins::
[ -x $(shell which pulumi) ] || curl -fsSL https://get.pulumi.com | sh
+ pulumi plugin install resource aws 4.1.0
+ pulumi plugin install resource azure 4.1.0
+ pulumi plugin install resource random 4.0.0
install_dotnet_sdk::
mkdir -p $(WORKING_DIR)/nuget
diff --git a/examples/aws_elastigroup/csharp/csharp.csproj b/examples/aws_elastigroup/csharp/csharp.csproj
index 92f8e9d6..bd86effb 100644
--- a/examples/aws_elastigroup/csharp/csharp.csproj
+++ b/examples/aws_elastigroup/csharp/csharp.csproj
@@ -7,7 +7,7 @@
-
+
diff --git a/examples/aws_elastigroup/python/requirements.txt b/examples/aws_elastigroup/python/requirements.txt
index 583615cf..ea1e69a6 100644
--- a/examples/aws_elastigroup/python/requirements.txt
+++ b/examples/aws_elastigroup/python/requirements.txt
@@ -1,2 +1,2 @@
-pulumi>=3.0.0a1,<4.0.0
-pulumi_aws>=4.0.0a1,<5.0.0
+pulumi>=3.0.0,<4.0.0
+pulumi_aws>=4.0.0,<5.0.0
diff --git a/examples/aws_elastigroup/ts/package-lock.json b/examples/aws_elastigroup/ts/package-lock.json
new file mode 100644
index 00000000..7e48867f
--- /dev/null
+++ b/examples/aws_elastigroup/ts/package-lock.json
@@ -0,0 +1,1952 @@
+{
+ "name": "typescript",
+ "lockfileVersion": 2,
+ "requires": true,
+ "packages": {
+ "": {
+ "name": "typescript",
+ "dependencies": {
+ "@pulumi/aws": "^4.0.0",
+ "@pulumi/pulumi": "^3.0.0",
+ "@pulumi/random": "^4.0.0"
+ },
+ "devDependencies": {
+ "@types/node": "^8.0.0"
+ }
+ },
+ "node_modules/@grpc/grpc-js": {
+ "version": "1.3.2",
+ "resolved": "https://registry.npmjs.org/@grpc/grpc-js/-/grpc-js-1.3.2.tgz",
+ "integrity": "sha512-UXepkOKCATJrhHGsxt+CGfpZy9zUn1q9mop5kfcXq1fBkTePxVNPOdnISlCbJFlCtld+pSLGyZCzr9/zVprFKA==",
+ "dependencies": {
+ "@types/node": ">=12.12.47"
+ },
+ "engines": {
+ "node": "^8.13.0 || >=10.10.0"
+ }
+ },
+ "node_modules/@grpc/grpc-js/node_modules/@types/node": {
+ "version": "15.12.0",
+ "resolved": "https://registry.npmjs.org/@types/node/-/node-15.12.0.tgz",
+ "integrity": "sha512-+aHJvoCsVhO2ZCuT4o5JtcPrCPyDE3+1nvbDprYes+pPkEsbjH7AGUCNtjMOXS0fqH14t+B7yLzaqSz92FPWyw=="
+ },
+ "node_modules/@logdna/tail-file": {
+ "version": "2.0.7",
+ "resolved": "https://registry.npmjs.org/@logdna/tail-file/-/tail-file-2.0.7.tgz",
+ "integrity": "sha512-ycw0OrbphtfGOnygF+J4J/kJELXifLUiQ/CSTMb9Ztqjnuq4h+Id3MEvt4FTyyyekYbzStx7TjkhqXFW6Mi9LA==",
+ "engines": {
+ "node": ">=10.3.0"
+ }
+ },
+ "node_modules/@protobufjs/aspromise": {
+ "version": "1.1.2",
+ "resolved": "https://registry.npmjs.org/@protobufjs/aspromise/-/aspromise-1.1.2.tgz",
+ "integrity": "sha1-m4sMxmPWaafY9vXQiToU00jzD78="
+ },
+ "node_modules/@protobufjs/base64": {
+ "version": "1.1.2",
+ "resolved": "https://registry.npmjs.org/@protobufjs/base64/-/base64-1.1.2.tgz",
+ "integrity": "sha512-AZkcAA5vnN/v4PDqKyMR5lx7hZttPDgClv83E//FMNhR2TMcLUhfRUBHCmSl0oi9zMgDDqRUJkSxO3wm85+XLg=="
+ },
+ "node_modules/@protobufjs/codegen": {
+ "version": "2.0.4",
+ "resolved": "https://registry.npmjs.org/@protobufjs/codegen/-/codegen-2.0.4.tgz",
+ "integrity": "sha512-YyFaikqM5sH0ziFZCN3xDC7zeGaB/d0IUb9CATugHWbd1FRFwWwt4ld4OYMPWu5a3Xe01mGAULCdqhMlPl29Jg=="
+ },
+ "node_modules/@protobufjs/eventemitter": {
+ "version": "1.1.0",
+ "resolved": "https://registry.npmjs.org/@protobufjs/eventemitter/-/eventemitter-1.1.0.tgz",
+ "integrity": "sha1-NVy8mLr61ZePntCV85diHx0Ga3A="
+ },
+ "node_modules/@protobufjs/fetch": {
+ "version": "1.1.0",
+ "resolved": "https://registry.npmjs.org/@protobufjs/fetch/-/fetch-1.1.0.tgz",
+ "integrity": "sha1-upn7WYYUr2VwDBYZ/wbUVLDYTEU=",
+ "dependencies": {
+ "@protobufjs/aspromise": "^1.1.1",
+ "@protobufjs/inquire": "^1.1.0"
+ }
+ },
+ "node_modules/@protobufjs/float": {
+ "version": "1.0.2",
+ "resolved": "https://registry.npmjs.org/@protobufjs/float/-/float-1.0.2.tgz",
+ "integrity": "sha1-Xp4avctz/Ap8uLKR33jIy9l7h9E="
+ },
+ "node_modules/@protobufjs/inquire": {
+ "version": "1.1.0",
+ "resolved": "https://registry.npmjs.org/@protobufjs/inquire/-/inquire-1.1.0.tgz",
+ "integrity": "sha1-/yAOPnzyQp4tyvwRQIKOjMY48Ik="
+ },
+ "node_modules/@protobufjs/path": {
+ "version": "1.1.2",
+ "resolved": "https://registry.npmjs.org/@protobufjs/path/-/path-1.1.2.tgz",
+ "integrity": "sha1-bMKyDFya1q0NzP0hynZz2Nf79o0="
+ },
+ "node_modules/@protobufjs/pool": {
+ "version": "1.1.0",
+ "resolved": "https://registry.npmjs.org/@protobufjs/pool/-/pool-1.1.0.tgz",
+ "integrity": "sha1-Cf0V8tbTq/qbZbw2ZQbWrXhG/1Q="
+ },
+ "node_modules/@protobufjs/utf8": {
+ "version": "1.1.0",
+ "resolved": "https://registry.npmjs.org/@protobufjs/utf8/-/utf8-1.1.0.tgz",
+ "integrity": "sha1-p3c2C1s5oaLlEG+OhY8v0tBgxXA="
+ },
+ "node_modules/@pulumi/aws": {
+ "version": "4.6.0",
+ "resolved": "https://registry.npmjs.org/@pulumi/aws/-/aws-4.6.0.tgz",
+ "integrity": "sha512-it0Q9FUd7v/2PgAvoXxTrTT/kQM1iwLNrxnBDabByQsGIOpp4jj4C+sexOoMH4IbKz6mwkLUaPS84QU/qDfndg==",
+ "hasInstallScript": true,
+ "dependencies": {
+ "@pulumi/pulumi": "^3.0.0",
+ "aws-sdk": "^2.0.0",
+ "builtin-modules": "3.0.0",
+ "mime": "^2.0.0",
+ "read-package-tree": "^5.2.1",
+ "resolve": "^1.7.1"
+ }
+ },
+ "node_modules/@pulumi/pulumi": {
+ "version": "3.3.1",
+ "resolved": "https://registry.npmjs.org/@pulumi/pulumi/-/pulumi-3.3.1.tgz",
+ "integrity": "sha512-W5HBFCQUY67QaPXtDSZ6Fe/K8mB+X7tJqi2pBU6UUUMtJVndcZ5BpLkZBznu+Nq/ZmitmGVaOpUqC5yK70D98A==",
+ "dependencies": {
+ "@grpc/grpc-js": "^1.2.7",
+ "@logdna/tail-file": "^2.0.6",
+ "@pulumi/query": "^0.3.0",
+ "google-protobuf": "^3.5.0",
+ "js-yaml": "^3.14.0",
+ "minimist": "^1.2.0",
+ "normalize-package-data": "^2.4.0",
+ "protobufjs": "^6.8.6",
+ "read-package-tree": "^5.3.1",
+ "require-from-string": "^2.0.1",
+ "semver": "^6.1.0",
+ "source-map-support": "^0.4.16",
+ "ts-node": "^7.0.1",
+ "typescript": "~3.7.3",
+ "upath": "^1.1.0"
+ },
+ "engines": {
+ "node": ">=8.13.0 || >=10.10.0"
+ }
+ },
+ "node_modules/@pulumi/query": {
+ "version": "0.3.0",
+ "resolved": "https://registry.npmjs.org/@pulumi/query/-/query-0.3.0.tgz",
+ "integrity": "sha512-xfo+yLRM2zVjVEA4p23IjQWzyWl1ZhWOGobsBqRpIarzLvwNH/RAGaoehdxlhx4X92302DrpdIFgTICMN4P38w=="
+ },
+ "node_modules/@pulumi/random": {
+ "version": "4.2.0",
+ "resolved": "https://registry.npmjs.org/@pulumi/random/-/random-4.2.0.tgz",
+ "integrity": "sha512-zdkI6AO2W0H4UwYlKLijccBkkylH1XoqXPoZ8l5shKnOAZVa5izmLkIw2wQOT65BAwjvfczZgdNpPng9n7W06w==",
+ "hasInstallScript": true,
+ "dependencies": {
+ "@pulumi/pulumi": "^3.0.0"
+ }
+ },
+ "node_modules/@types/long": {
+ "version": "4.0.1",
+ "resolved": "https://registry.npmjs.org/@types/long/-/long-4.0.1.tgz",
+ "integrity": "sha512-5tXH6Bx/kNGd3MgffdmP4dy2Z+G4eaXw0SE81Tq3BNadtnMR5/ySMzX4SLEzHJzSmPNn4HIdpQsBvXMUykr58w=="
+ },
+ "node_modules/@types/node": {
+ "version": "8.10.66",
+ "resolved": "https://registry.npmjs.org/@types/node/-/node-8.10.66.tgz",
+ "integrity": "sha512-tktOkFUA4kXx2hhhrB8bIFb5TbwzS4uOhKEmwiD+NoiL0qtP2OQ9mFldbgD4dV1djrlBYP6eBuQZiWjuHUpqFw==",
+ "dev": true
+ },
+ "node_modules/argparse": {
+ "version": "1.0.10",
+ "resolved": "https://registry.npmjs.org/argparse/-/argparse-1.0.10.tgz",
+ "integrity": "sha512-o5Roy6tNG4SL/FOkCAN6RzjiakZS25RLYFrcMttJqbdd8BWrnA+fGz57iN5Pb06pvBGvl5gQ0B48dJlslXvoTg==",
+ "dependencies": {
+ "sprintf-js": "~1.0.2"
+ }
+ },
+ "node_modules/arrify": {
+ "version": "1.0.1",
+ "resolved": "https://registry.npmjs.org/arrify/-/arrify-1.0.1.tgz",
+ "integrity": "sha1-iYUI2iIm84DfkEcoRWhJwVAaSw0=",
+ "engines": {
+ "node": ">=0.10.0"
+ }
+ },
+ "node_modules/asap": {
+ "version": "2.0.6",
+ "resolved": "https://registry.npmjs.org/asap/-/asap-2.0.6.tgz",
+ "integrity": "sha1-5QNHYR1+aQlDIIu9r+vLwvuGbUY="
+ },
+ "node_modules/aws-sdk": {
+ "version": "2.920.0",
+ "resolved": "https://registry.npmjs.org/aws-sdk/-/aws-sdk-2.920.0.tgz",
+ "integrity": "sha512-tbMZ/Y2rRo6R6TTBODJXTiil+MXaoT6Qzotws3yvI1IWGpYxKo7N/3L06XB8ul8tCG0TigxIOY70SMICM70Ppg==",
+ "hasInstallScript": true,
+ "dependencies": {
+ "buffer": "4.9.2",
+ "events": "1.1.1",
+ "ieee754": "1.1.13",
+ "jmespath": "0.15.0",
+ "querystring": "0.2.0",
+ "sax": "1.2.1",
+ "url": "0.10.3",
+ "uuid": "3.3.2",
+ "xml2js": "0.4.19"
+ },
+ "engines": {
+ "node": ">= 0.8.0"
+ }
+ },
+ "node_modules/balanced-match": {
+ "version": "1.0.2",
+ "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.2.tgz",
+ "integrity": "sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw=="
+ },
+ "node_modules/base64-js": {
+ "version": "1.5.1",
+ "resolved": "https://registry.npmjs.org/base64-js/-/base64-js-1.5.1.tgz",
+ "integrity": "sha512-AKpaYlHn8t4SVbOHCy+b5+KKgvR4vrsD8vbvrbiQJps7fKDTkjkDry6ji0rUJjC0kzbNePLwzxq8iypo41qeWA==",
+ "funding": [
+ {
+ "type": "github",
+ "url": "https://github.com/sponsors/feross"
+ },
+ {
+ "type": "patreon",
+ "url": "https://www.patreon.com/feross"
+ },
+ {
+ "type": "consulting",
+ "url": "https://feross.org/support"
+ }
+ ]
+ },
+ "node_modules/brace-expansion": {
+ "version": "1.1.11",
+ "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz",
+ "integrity": "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==",
+ "dependencies": {
+ "balanced-match": "^1.0.0",
+ "concat-map": "0.0.1"
+ }
+ },
+ "node_modules/buffer": {
+ "version": "4.9.2",
+ "resolved": "https://registry.npmjs.org/buffer/-/buffer-4.9.2.tgz",
+ "integrity": "sha512-xq+q3SRMOxGivLhBNaUdC64hDTQwejJ+H0T/NB1XMtTVEwNTrfFF3gAxiyW0Bu/xWEGhjVKgUcMhCrUy2+uCWg==",
+ "dependencies": {
+ "base64-js": "^1.0.2",
+ "ieee754": "^1.1.4",
+ "isarray": "^1.0.0"
+ }
+ },
+ "node_modules/buffer-from": {
+ "version": "1.1.1",
+ "resolved": "https://registry.npmjs.org/buffer-from/-/buffer-from-1.1.1.tgz",
+ "integrity": "sha512-MQcXEUbCKtEo7bhqEs6560Hyd4XaovZlO/k9V3hjVUF/zwW7KBVdSK4gIt/bzwS9MbR5qob+F5jusZsb0YQK2A=="
+ },
+ "node_modules/builtin-modules": {
+ "version": "3.0.0",
+ "resolved": "https://registry.npmjs.org/builtin-modules/-/builtin-modules-3.0.0.tgz",
+ "integrity": "sha512-hMIeU4K2ilbXV6Uv93ZZ0Avg/M91RaKXucQ+4me2Do1txxBDyDZWCBa5bJSLqoNTRpXTLwEzIk1KmloenDDjhg==",
+ "engines": {
+ "node": ">=6"
+ }
+ },
+ "node_modules/call-bind": {
+ "version": "1.0.2",
+ "resolved": "https://registry.npmjs.org/call-bind/-/call-bind-1.0.2.tgz",
+ "integrity": "sha512-7O+FbCihrB5WGbFYesctwmTKae6rOiIzmz1icreWJ+0aA7LJfuqhEso2T9ncpcFtzMQtzXf2QGGueWJGTYsqrA==",
+ "dependencies": {
+ "function-bind": "^1.1.1",
+ "get-intrinsic": "^1.0.2"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/ljharb"
+ }
+ },
+ "node_modules/concat-map": {
+ "version": "0.0.1",
+ "resolved": "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz",
+ "integrity": "sha1-2Klr13/Wjfd5OnMDajug1UBdR3s="
+ },
+ "node_modules/debuglog": {
+ "version": "1.0.1",
+ "resolved": "https://registry.npmjs.org/debuglog/-/debuglog-1.0.1.tgz",
+ "integrity": "sha1-qiT/uaw9+aI1GDfPstJ5NgzXhJI=",
+ "engines": {
+ "node": "*"
+ }
+ },
+ "node_modules/define-properties": {
+ "version": "1.1.3",
+ "resolved": "https://registry.npmjs.org/define-properties/-/define-properties-1.1.3.tgz",
+ "integrity": "sha512-3MqfYKj2lLzdMSf8ZIZE/V+Zuy+BgD6f164e8K2w7dgnpKArBDerGYpM46IYYcjnkdPNMjPk9A6VFB8+3SKlXQ==",
+ "dependencies": {
+ "object-keys": "^1.0.12"
+ },
+ "engines": {
+ "node": ">= 0.4"
+ }
+ },
+ "node_modules/dezalgo": {
+ "version": "1.0.3",
+ "resolved": "https://registry.npmjs.org/dezalgo/-/dezalgo-1.0.3.tgz",
+ "integrity": "sha1-f3Qt4Gb8dIvI24IFad3c5Jvw1FY=",
+ "dependencies": {
+ "asap": "^2.0.0",
+ "wrappy": "1"
+ }
+ },
+ "node_modules/diff": {
+ "version": "3.5.0",
+ "resolved": "https://registry.npmjs.org/diff/-/diff-3.5.0.tgz",
+ "integrity": "sha512-A46qtFgd+g7pDZinpnwiRJtxbC1hpgf0uzP3iG89scHk0AUC7A1TGxf5OiiOUv/JMZR8GOt8hL900hV0bOy5xA==",
+ "engines": {
+ "node": ">=0.3.1"
+ }
+ },
+ "node_modules/es-abstract": {
+ "version": "1.18.3",
+ "resolved": "https://registry.npmjs.org/es-abstract/-/es-abstract-1.18.3.tgz",
+ "integrity": "sha512-nQIr12dxV7SSxE6r6f1l3DtAeEYdsGpps13dR0TwJg1S8gyp4ZPgy3FZcHBgbiQqnoqSTb+oC+kO4UQ0C/J8vw==",
+ "dependencies": {
+ "call-bind": "^1.0.2",
+ "es-to-primitive": "^1.2.1",
+ "function-bind": "^1.1.1",
+ "get-intrinsic": "^1.1.1",
+ "has": "^1.0.3",
+ "has-symbols": "^1.0.2",
+ "is-callable": "^1.2.3",
+ "is-negative-zero": "^2.0.1",
+ "is-regex": "^1.1.3",
+ "is-string": "^1.0.6",
+ "object-inspect": "^1.10.3",
+ "object-keys": "^1.1.1",
+ "object.assign": "^4.1.2",
+ "string.prototype.trimend": "^1.0.4",
+ "string.prototype.trimstart": "^1.0.4",
+ "unbox-primitive": "^1.0.1"
+ },
+ "engines": {
+ "node": ">= 0.4"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/ljharb"
+ }
+ },
+ "node_modules/es-to-primitive": {
+ "version": "1.2.1",
+ "resolved": "https://registry.npmjs.org/es-to-primitive/-/es-to-primitive-1.2.1.tgz",
+ "integrity": "sha512-QCOllgZJtaUo9miYBcLChTUaHNjJF3PYs1VidD7AwiEj1kYxKeQTctLAezAOH5ZKRH0g2IgPn6KwB4IT8iRpvA==",
+ "dependencies": {
+ "is-callable": "^1.1.4",
+ "is-date-object": "^1.0.1",
+ "is-symbol": "^1.0.2"
+ },
+ "engines": {
+ "node": ">= 0.4"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/ljharb"
+ }
+ },
+ "node_modules/esprima": {
+ "version": "4.0.1",
+ "resolved": "https://registry.npmjs.org/esprima/-/esprima-4.0.1.tgz",
+ "integrity": "sha512-eGuFFw7Upda+g4p+QHvnW0RyTX/SVeJBDM/gCtMARO0cLuT2HcEKnTPvhjV6aGeqrCB/sbNop0Kszm0jsaWU4A==",
+ "bin": {
+ "esparse": "bin/esparse.js",
+ "esvalidate": "bin/esvalidate.js"
+ },
+ "engines": {
+ "node": ">=4"
+ }
+ },
+ "node_modules/events": {
+ "version": "1.1.1",
+ "resolved": "https://registry.npmjs.org/events/-/events-1.1.1.tgz",
+ "integrity": "sha1-nr23Y1rQmccNzEwqH1AEKI6L2SQ=",
+ "engines": {
+ "node": ">=0.4.x"
+ }
+ },
+ "node_modules/fs.realpath": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/fs.realpath/-/fs.realpath-1.0.0.tgz",
+ "integrity": "sha1-FQStJSMVjKpA20onh8sBQRmU6k8="
+ },
+ "node_modules/function-bind": {
+ "version": "1.1.1",
+ "resolved": "https://registry.npmjs.org/function-bind/-/function-bind-1.1.1.tgz",
+ "integrity": "sha512-yIovAzMX49sF8Yl58fSCWJ5svSLuaibPxXQJFLmBObTuCr0Mf1KiPopGM9NiFjiYBCbfaa2Fh6breQ6ANVTI0A=="
+ },
+ "node_modules/get-intrinsic": {
+ "version": "1.1.1",
+ "resolved": "https://registry.npmjs.org/get-intrinsic/-/get-intrinsic-1.1.1.tgz",
+ "integrity": "sha512-kWZrnVM42QCiEA2Ig1bG8zjoIMOgxWwYCEeNdwY6Tv/cOSeGpcoX4pXHfKUxNKVoArnrEr2e9srnAxxGIraS9Q==",
+ "dependencies": {
+ "function-bind": "^1.1.1",
+ "has": "^1.0.3",
+ "has-symbols": "^1.0.1"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/ljharb"
+ }
+ },
+ "node_modules/glob": {
+ "version": "7.1.7",
+ "resolved": "https://registry.npmjs.org/glob/-/glob-7.1.7.tgz",
+ "integrity": "sha512-OvD9ENzPLbegENnYP5UUfJIirTg4+XwMWGaQfQTY0JenxNvvIKP3U3/tAQSPIu/lHxXYSZmpXlUHeqAIdKzBLQ==",
+ "dependencies": {
+ "fs.realpath": "^1.0.0",
+ "inflight": "^1.0.4",
+ "inherits": "2",
+ "minimatch": "^3.0.4",
+ "once": "^1.3.0",
+ "path-is-absolute": "^1.0.0"
+ },
+ "engines": {
+ "node": "*"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/isaacs"
+ }
+ },
+ "node_modules/google-protobuf": {
+ "version": "3.17.2",
+ "resolved": "https://registry.npmjs.org/google-protobuf/-/google-protobuf-3.17.2.tgz",
+ "integrity": "sha512-LlFVMhSkNy6C1MakEjiwbLxq5w+V+Go+mvt2EUoysrp8gXl903ic2W/3BwzM4/WnDMJP+u7UO2efUSl/0CJMzA=="
+ },
+ "node_modules/graceful-fs": {
+ "version": "4.2.6",
+ "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.2.6.tgz",
+ "integrity": "sha512-nTnJ528pbqxYanhpDYsi4Rd8MAeaBA67+RZ10CM1m3bTAVFEDcd5AuA4a6W5YkGZ1iNXHzZz8T6TBKLeBuNriQ=="
+ },
+ "node_modules/has": {
+ "version": "1.0.3",
+ "resolved": "https://registry.npmjs.org/has/-/has-1.0.3.tgz",
+ "integrity": "sha512-f2dvO0VU6Oej7RkWJGrehjbzMAjFp5/VKPp5tTpWIV4JHHZK1/BxbFRtf/siA2SWTe09caDmVtYYzWEIbBS4zw==",
+ "dependencies": {
+ "function-bind": "^1.1.1"
+ },
+ "engines": {
+ "node": ">= 0.4.0"
+ }
+ },
+ "node_modules/has-bigints": {
+ "version": "1.0.1",
+ "resolved": "https://registry.npmjs.org/has-bigints/-/has-bigints-1.0.1.tgz",
+ "integrity": "sha512-LSBS2LjbNBTf6287JEbEzvJgftkF5qFkmCo9hDRpAzKhUOlJ+hx8dd4USs00SgsUNwc4617J9ki5YtEClM2ffA==",
+ "funding": {
+ "url": "https://github.com/sponsors/ljharb"
+ }
+ },
+ "node_modules/has-symbols": {
+ "version": "1.0.2",
+ "resolved": "https://registry.npmjs.org/has-symbols/-/has-symbols-1.0.2.tgz",
+ "integrity": "sha512-chXa79rL/UC2KlX17jo3vRGz0azaWEx5tGqZg5pO3NUyEJVB17dMruQlzCCOfUvElghKcm5194+BCRvi2Rv/Gw==",
+ "engines": {
+ "node": ">= 0.4"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/ljharb"
+ }
+ },
+ "node_modules/hosted-git-info": {
+ "version": "2.8.9",
+ "resolved": "https://registry.npmjs.org/hosted-git-info/-/hosted-git-info-2.8.9.tgz",
+ "integrity": "sha512-mxIDAb9Lsm6DoOJ7xH+5+X4y1LU/4Hi50L9C5sIswK3JzULS4bwk1FvjdBgvYR4bzT4tuUQiC15FE2f5HbLvYw=="
+ },
+ "node_modules/ieee754": {
+ "version": "1.1.13",
+ "resolved": "https://registry.npmjs.org/ieee754/-/ieee754-1.1.13.tgz",
+ "integrity": "sha512-4vf7I2LYV/HaWerSo3XmlMkp5eZ83i+/CDluXi/IGTs/O1sejBNhTtnxzmRZfvOUqj7lZjqHkeTvpgSFDlWZTg=="
+ },
+ "node_modules/inflight": {
+ "version": "1.0.6",
+ "resolved": "https://registry.npmjs.org/inflight/-/inflight-1.0.6.tgz",
+ "integrity": "sha1-Sb1jMdfQLQwJvJEKEHW6gWW1bfk=",
+ "dependencies": {
+ "once": "^1.3.0",
+ "wrappy": "1"
+ }
+ },
+ "node_modules/inherits": {
+ "version": "2.0.4",
+ "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.4.tgz",
+ "integrity": "sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ=="
+ },
+ "node_modules/is-bigint": {
+ "version": "1.0.2",
+ "resolved": "https://registry.npmjs.org/is-bigint/-/is-bigint-1.0.2.tgz",
+ "integrity": "sha512-0JV5+SOCQkIdzjBK9buARcV804Ddu7A0Qet6sHi3FimE9ne6m4BGQZfRn+NZiXbBk4F4XmHfDZIipLj9pX8dSA==",
+ "funding": {
+ "url": "https://github.com/sponsors/ljharb"
+ }
+ },
+ "node_modules/is-boolean-object": {
+ "version": "1.1.1",
+ "resolved": "https://registry.npmjs.org/is-boolean-object/-/is-boolean-object-1.1.1.tgz",
+ "integrity": "sha512-bXdQWkECBUIAcCkeH1unwJLIpZYaa5VvuygSyS/c2lf719mTKZDU5UdDRlpd01UjADgmW8RfqaP+mRaVPdr/Ng==",
+ "dependencies": {
+ "call-bind": "^1.0.2"
+ },
+ "engines": {
+ "node": ">= 0.4"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/ljharb"
+ }
+ },
+ "node_modules/is-callable": {
+ "version": "1.2.3",
+ "resolved": "https://registry.npmjs.org/is-callable/-/is-callable-1.2.3.tgz",
+ "integrity": "sha512-J1DcMe8UYTBSrKezuIUTUwjXsho29693unXM2YhJUTR2txK/eG47bvNa/wipPFmZFgr/N6f1GA66dv0mEyTIyQ==",
+ "engines": {
+ "node": ">= 0.4"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/ljharb"
+ }
+ },
+ "node_modules/is-core-module": {
+ "version": "2.4.0",
+ "resolved": "https://registry.npmjs.org/is-core-module/-/is-core-module-2.4.0.tgz",
+ "integrity": "sha512-6A2fkfq1rfeQZjxrZJGerpLCTHRNEBiSgnu0+obeJpEPZRUooHgsizvzv0ZjJwOz3iWIHdJtVWJ/tmPr3D21/A==",
+ "dependencies": {
+ "has": "^1.0.3"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/ljharb"
+ }
+ },
+ "node_modules/is-date-object": {
+ "version": "1.0.4",
+ "resolved": "https://registry.npmjs.org/is-date-object/-/is-date-object-1.0.4.tgz",
+ "integrity": "sha512-/b4ZVsG7Z5XVtIxs/h9W8nvfLgSAyKYdtGWQLbqy6jA1icmgjf8WCoTKgeS4wy5tYaPePouzFMANbnj94c2Z+A==",
+ "engines": {
+ "node": ">= 0.4"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/ljharb"
+ }
+ },
+ "node_modules/is-negative-zero": {
+ "version": "2.0.1",
+ "resolved": "https://registry.npmjs.org/is-negative-zero/-/is-negative-zero-2.0.1.tgz",
+ "integrity": "sha512-2z6JzQvZRa9A2Y7xC6dQQm4FSTSTNWjKIYYTt4246eMTJmIo0Q+ZyOsU66X8lxK1AbB92dFeglPLrhwpeRKO6w==",
+ "engines": {
+ "node": ">= 0.4"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/ljharb"
+ }
+ },
+ "node_modules/is-number-object": {
+ "version": "1.0.5",
+ "resolved": "https://registry.npmjs.org/is-number-object/-/is-number-object-1.0.5.tgz",
+ "integrity": "sha512-RU0lI/n95pMoUKu9v1BZP5MBcZuNSVJkMkAG2dJqC4z2GlkGUNeH68SuHuBKBD/XFe+LHZ+f9BKkLET60Niedw==",
+ "engines": {
+ "node": ">= 0.4"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/ljharb"
+ }
+ },
+ "node_modules/is-regex": {
+ "version": "1.1.3",
+ "resolved": "https://registry.npmjs.org/is-regex/-/is-regex-1.1.3.tgz",
+ "integrity": "sha512-qSVXFz28HM7y+IWX6vLCsexdlvzT1PJNFSBuaQLQ5o0IEw8UDYW6/2+eCMVyIsbM8CNLX2a/QWmSpyxYEHY7CQ==",
+ "dependencies": {
+ "call-bind": "^1.0.2",
+ "has-symbols": "^1.0.2"
+ },
+ "engines": {
+ "node": ">= 0.4"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/ljharb"
+ }
+ },
+ "node_modules/is-string": {
+ "version": "1.0.6",
+ "resolved": "https://registry.npmjs.org/is-string/-/is-string-1.0.6.tgz",
+ "integrity": "sha512-2gdzbKUuqtQ3lYNrUTQYoClPhm7oQu4UdpSZMp1/DGgkHBT8E2Z1l0yMdb6D4zNAxwDiMv8MdulKROJGNl0Q0w==",
+ "engines": {
+ "node": ">= 0.4"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/ljharb"
+ }
+ },
+ "node_modules/is-symbol": {
+ "version": "1.0.4",
+ "resolved": "https://registry.npmjs.org/is-symbol/-/is-symbol-1.0.4.tgz",
+ "integrity": "sha512-C/CPBqKWnvdcxqIARxyOh4v1UUEOCHpgDa0WYgpKDFMszcrPcffg5uhwSgPCLD2WWxmq6isisz87tzT01tuGhg==",
+ "dependencies": {
+ "has-symbols": "^1.0.2"
+ },
+ "engines": {
+ "node": ">= 0.4"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/ljharb"
+ }
+ },
+ "node_modules/isarray": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz",
+ "integrity": "sha1-u5NdSFgsuhaMBoNJV6VKPgcSTxE="
+ },
+ "node_modules/jmespath": {
+ "version": "0.15.0",
+ "resolved": "https://registry.npmjs.org/jmespath/-/jmespath-0.15.0.tgz",
+ "integrity": "sha1-o/Iiqarp+Wb10nx5ZRDigJF2Qhc=",
+ "engines": {
+ "node": ">= 0.6.0"
+ }
+ },
+ "node_modules/js-yaml": {
+ "version": "3.14.1",
+ "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-3.14.1.tgz",
+ "integrity": "sha512-okMH7OXXJ7YrN9Ok3/SXrnu4iX9yOk+25nqX4imS2npuvTYDmo/QEZoqwZkYaIDk3jVvBOTOIEgEhaLOynBS9g==",
+ "dependencies": {
+ "argparse": "^1.0.7",
+ "esprima": "^4.0.0"
+ },
+ "bin": {
+ "js-yaml": "bin/js-yaml.js"
+ }
+ },
+ "node_modules/json-parse-even-better-errors": {
+ "version": "2.3.1",
+ "resolved": "https://registry.npmjs.org/json-parse-even-better-errors/-/json-parse-even-better-errors-2.3.1.tgz",
+ "integrity": "sha512-xyFwyhro/JEof6Ghe2iz2NcXoj2sloNsWr/XsERDK/oiPCfaNhl5ONfp+jQdAZRQQ0IJWNzH9zIZF7li91kh2w=="
+ },
+ "node_modules/long": {
+ "version": "4.0.0",
+ "resolved": "https://registry.npmjs.org/long/-/long-4.0.0.tgz",
+ "integrity": "sha512-XsP+KhQif4bjX1kbuSiySJFNAehNxgLb6hPRGJ9QsUr8ajHkuXGdrHmFUTUUXhDwVX2R5bY4JNZEwbUiMhV+MA=="
+ },
+ "node_modules/make-error": {
+ "version": "1.3.6",
+ "resolved": "https://registry.npmjs.org/make-error/-/make-error-1.3.6.tgz",
+ "integrity": "sha512-s8UhlNe7vPKomQhC1qFelMokr/Sc3AgNbso3n74mVPA5LTZwkB9NlXf4XPamLxJE8h0gh73rM94xvwRT2CVInw=="
+ },
+ "node_modules/mime": {
+ "version": "2.5.2",
+ "resolved": "https://registry.npmjs.org/mime/-/mime-2.5.2.tgz",
+ "integrity": "sha512-tqkh47FzKeCPD2PUiPB6pkbMzsCasjxAfC62/Wap5qrUWcb+sFasXUC5I3gYM5iBM8v/Qpn4UK0x+j0iHyFPDg==",
+ "bin": {
+ "mime": "cli.js"
+ },
+ "engines": {
+ "node": ">=4.0.0"
+ }
+ },
+ "node_modules/minimatch": {
+ "version": "3.0.4",
+ "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.0.4.tgz",
+ "integrity": "sha512-yJHVQEhyqPLUTgt9B83PXu6W3rx4MvvHvSUvToogpwoGDOUQ+yDrR0HRot+yOCdCO7u4hX3pWft6kWBBcqh0UA==",
+ "dependencies": {
+ "brace-expansion": "^1.1.7"
+ },
+ "engines": {
+ "node": "*"
+ }
+ },
+ "node_modules/minimist": {
+ "version": "1.2.5",
+ "resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.5.tgz",
+ "integrity": "sha512-FM9nNUYrRBAELZQT3xeZQ7fmMOBg6nWNmJKTcgsJeaLstP/UODVpGsr5OhXhhXg6f+qtJ8uiZ+PUxkDWcgIXLw=="
+ },
+ "node_modules/mkdirp": {
+ "version": "0.5.5",
+ "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-0.5.5.tgz",
+ "integrity": "sha512-NKmAlESf6jMGym1++R0Ra7wvhV+wFW63FaSOFPwRahvea0gMUcGUhVeAg/0BC0wiv9ih5NYPB1Wn1UEI1/L+xQ==",
+ "dependencies": {
+ "minimist": "^1.2.5"
+ },
+ "bin": {
+ "mkdirp": "bin/cmd.js"
+ }
+ },
+ "node_modules/normalize-package-data": {
+ "version": "2.5.0",
+ "resolved": "https://registry.npmjs.org/normalize-package-data/-/normalize-package-data-2.5.0.tgz",
+ "integrity": "sha512-/5CMN3T0R4XTj4DcGaexo+roZSdSFW/0AOOTROrjxzCG1wrWXEsGbRKevjlIL+ZDE4sZlJr5ED4YW0yqmkK+eA==",
+ "dependencies": {
+ "hosted-git-info": "^2.1.4",
+ "resolve": "^1.10.0",
+ "semver": "2 || 3 || 4 || 5",
+ "validate-npm-package-license": "^3.0.1"
+ }
+ },
+ "node_modules/normalize-package-data/node_modules/semver": {
+ "version": "5.7.1",
+ "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.1.tgz",
+ "integrity": "sha512-sauaDf/PZdVgrLTNYHRtpXa1iRiKcaebiKQ1BJdpQlWH2lCvexQdX55snPFyK7QzpudqbCI0qXFfOasHdyNDGQ==",
+ "bin": {
+ "semver": "bin/semver"
+ }
+ },
+ "node_modules/npm-normalize-package-bin": {
+ "version": "1.0.1",
+ "resolved": "https://registry.npmjs.org/npm-normalize-package-bin/-/npm-normalize-package-bin-1.0.1.tgz",
+ "integrity": "sha512-EPfafl6JL5/rU+ot6P3gRSCpPDW5VmIzX959Ob1+ySFUuuYHWHekXpwdUZcKP5C+DS4GEtdJluwBjnsNDl+fSA=="
+ },
+ "node_modules/object-inspect": {
+ "version": "1.10.3",
+ "resolved": "https://registry.npmjs.org/object-inspect/-/object-inspect-1.10.3.tgz",
+ "integrity": "sha512-e5mCJlSH7poANfC8z8S9s9S2IN5/4Zb3aZ33f5s8YqoazCFzNLloLU8r5VCG+G7WoqLvAAZoVMcy3tp/3X0Plw==",
+ "funding": {
+ "url": "https://github.com/sponsors/ljharb"
+ }
+ },
+ "node_modules/object-keys": {
+ "version": "1.1.1",
+ "resolved": "https://registry.npmjs.org/object-keys/-/object-keys-1.1.1.tgz",
+ "integrity": "sha512-NuAESUOUMrlIXOfHKzD6bpPu3tYt3xvjNdRIQ+FeT0lNb4K8WR70CaDxhuNguS2XG+GjkyMwOzsN5ZktImfhLA==",
+ "engines": {
+ "node": ">= 0.4"
+ }
+ },
+ "node_modules/object.assign": {
+ "version": "4.1.2",
+ "resolved": "https://registry.npmjs.org/object.assign/-/object.assign-4.1.2.tgz",
+ "integrity": "sha512-ixT2L5THXsApyiUPYKmW+2EHpXXe5Ii3M+f4e+aJFAHao5amFRW6J0OO6c/LU8Be47utCx2GL89hxGB6XSmKuQ==",
+ "dependencies": {
+ "call-bind": "^1.0.0",
+ "define-properties": "^1.1.3",
+ "has-symbols": "^1.0.1",
+ "object-keys": "^1.1.1"
+ },
+ "engines": {
+ "node": ">= 0.4"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/ljharb"
+ }
+ },
+ "node_modules/object.getownpropertydescriptors": {
+ "version": "2.1.2",
+ "resolved": "https://registry.npmjs.org/object.getownpropertydescriptors/-/object.getownpropertydescriptors-2.1.2.tgz",
+ "integrity": "sha512-WtxeKSzfBjlzL+F9b7M7hewDzMwy+C8NRssHd1YrNlzHzIDrXcXiNOMrezdAEM4UXixgV+vvnyBeN7Rygl2ttQ==",
+ "dependencies": {
+ "call-bind": "^1.0.2",
+ "define-properties": "^1.1.3",
+ "es-abstract": "^1.18.0-next.2"
+ },
+ "engines": {
+ "node": ">= 0.8"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/ljharb"
+ }
+ },
+ "node_modules/once": {
+ "version": "1.4.0",
+ "resolved": "https://registry.npmjs.org/once/-/once-1.4.0.tgz",
+ "integrity": "sha1-WDsap3WWHUsROsF9nFC6753Xa9E=",
+ "dependencies": {
+ "wrappy": "1"
+ }
+ },
+ "node_modules/path-is-absolute": {
+ "version": "1.0.1",
+ "resolved": "https://registry.npmjs.org/path-is-absolute/-/path-is-absolute-1.0.1.tgz",
+ "integrity": "sha1-F0uSaHNVNP+8es5r9TpanhtcX18=",
+ "engines": {
+ "node": ">=0.10.0"
+ }
+ },
+ "node_modules/path-parse": {
+ "version": "1.0.7",
+ "resolved": "https://registry.npmjs.org/path-parse/-/path-parse-1.0.7.tgz",
+ "integrity": "sha512-LDJzPVEEEPR+y48z93A0Ed0yXb8pAByGWo/k5YYdYgpY2/2EsOsksJrq7lOHxryrVOn1ejG6oAp8ahvOIQD8sw=="
+ },
+ "node_modules/protobufjs": {
+ "version": "6.11.2",
+ "resolved": "https://registry.npmjs.org/protobufjs/-/protobufjs-6.11.2.tgz",
+ "integrity": "sha512-4BQJoPooKJl2G9j3XftkIXjoC9C0Av2NOrWmbLWT1vH32GcSUHjM0Arra6UfTsVyfMAuFzaLucXn1sadxJydAw==",
+ "hasInstallScript": true,
+ "dependencies": {
+ "@protobufjs/aspromise": "^1.1.2",
+ "@protobufjs/base64": "^1.1.2",
+ "@protobufjs/codegen": "^2.0.4",
+ "@protobufjs/eventemitter": "^1.1.0",
+ "@protobufjs/fetch": "^1.1.0",
+ "@protobufjs/float": "^1.0.2",
+ "@protobufjs/inquire": "^1.1.0",
+ "@protobufjs/path": "^1.1.2",
+ "@protobufjs/pool": "^1.1.0",
+ "@protobufjs/utf8": "^1.1.0",
+ "@types/long": "^4.0.1",
+ "@types/node": ">=13.7.0",
+ "long": "^4.0.0"
+ },
+ "bin": {
+ "pbjs": "bin/pbjs",
+ "pbts": "bin/pbts"
+ }
+ },
+ "node_modules/protobufjs/node_modules/@types/node": {
+ "version": "15.12.0",
+ "resolved": "https://registry.npmjs.org/@types/node/-/node-15.12.0.tgz",
+ "integrity": "sha512-+aHJvoCsVhO2ZCuT4o5JtcPrCPyDE3+1nvbDprYes+pPkEsbjH7AGUCNtjMOXS0fqH14t+B7yLzaqSz92FPWyw=="
+ },
+ "node_modules/punycode": {
+ "version": "1.3.2",
+ "resolved": "https://registry.npmjs.org/punycode/-/punycode-1.3.2.tgz",
+ "integrity": "sha1-llOgNvt8HuQjQvIyXM7v6jkmxI0="
+ },
+ "node_modules/querystring": {
+ "version": "0.2.0",
+ "resolved": "https://registry.npmjs.org/querystring/-/querystring-0.2.0.tgz",
+ "integrity": "sha1-sgmEkgO7Jd+CDadW50cAWHhSFiA=",
+ "engines": {
+ "node": ">=0.4.x"
+ }
+ },
+ "node_modules/read-package-json": {
+ "version": "2.1.2",
+ "resolved": "https://registry.npmjs.org/read-package-json/-/read-package-json-2.1.2.tgz",
+ "integrity": "sha512-D1KmuLQr6ZSJS0tW8hf3WGpRlwszJOXZ3E8Yd/DNRaM5d+1wVRZdHlpGBLAuovjr28LbWvjpWkBHMxpRGGjzNA==",
+ "dependencies": {
+ "glob": "^7.1.1",
+ "json-parse-even-better-errors": "^2.3.0",
+ "normalize-package-data": "^2.0.0",
+ "npm-normalize-package-bin": "^1.0.0"
+ }
+ },
+ "node_modules/read-package-tree": {
+ "version": "5.3.1",
+ "resolved": "https://registry.npmjs.org/read-package-tree/-/read-package-tree-5.3.1.tgz",
+ "integrity": "sha512-mLUDsD5JVtlZxjSlPPx1RETkNjjvQYuweKwNVt1Sn8kP5Jh44pvYuUHCp6xSVDZWbNxVxG5lyZJ921aJH61sTw==",
+ "dependencies": {
+ "read-package-json": "^2.0.0",
+ "readdir-scoped-modules": "^1.0.0",
+ "util-promisify": "^2.1.0"
+ }
+ },
+ "node_modules/readdir-scoped-modules": {
+ "version": "1.1.0",
+ "resolved": "https://registry.npmjs.org/readdir-scoped-modules/-/readdir-scoped-modules-1.1.0.tgz",
+ "integrity": "sha512-asaikDeqAQg7JifRsZn1NJZXo9E+VwlyCfbkZhwyISinqk5zNS6266HS5kah6P0SaQKGF6SkNnZVHUzHFYxYDw==",
+ "dependencies": {
+ "debuglog": "^1.0.1",
+ "dezalgo": "^1.0.0",
+ "graceful-fs": "^4.1.2",
+ "once": "^1.3.0"
+ }
+ },
+ "node_modules/require-from-string": {
+ "version": "2.0.2",
+ "resolved": "https://registry.npmjs.org/require-from-string/-/require-from-string-2.0.2.tgz",
+ "integrity": "sha512-Xf0nWe6RseziFMu+Ap9biiUbmplq6S9/p+7w7YXP/JBHhrUDDUhwa+vANyubuqfZWTveU//DYVGsDG7RKL/vEw==",
+ "engines": {
+ "node": ">=0.10.0"
+ }
+ },
+ "node_modules/resolve": {
+ "version": "1.20.0",
+ "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.20.0.tgz",
+ "integrity": "sha512-wENBPt4ySzg4ybFQW2TT1zMQucPK95HSh/nq2CFTZVOGut2+pQvSsgtda4d26YrYcr067wjbmzOG8byDPBX63A==",
+ "dependencies": {
+ "is-core-module": "^2.2.0",
+ "path-parse": "^1.0.6"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/ljharb"
+ }
+ },
+ "node_modules/sax": {
+ "version": "1.2.1",
+ "resolved": "https://registry.npmjs.org/sax/-/sax-1.2.1.tgz",
+ "integrity": "sha1-e45lYZCyKOgaZq6nSEgNgozS03o="
+ },
+ "node_modules/semver": {
+ "version": "6.3.0",
+ "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz",
+ "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==",
+ "bin": {
+ "semver": "bin/semver.js"
+ }
+ },
+ "node_modules/source-map": {
+ "version": "0.5.7",
+ "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.5.7.tgz",
+ "integrity": "sha1-igOdLRAh0i0eoUyA2OpGi6LvP8w=",
+ "engines": {
+ "node": ">=0.10.0"
+ }
+ },
+ "node_modules/source-map-support": {
+ "version": "0.4.18",
+ "resolved": "https://registry.npmjs.org/source-map-support/-/source-map-support-0.4.18.tgz",
+ "integrity": "sha512-try0/JqxPLF9nOjvSta7tVondkP5dwgyLDjVoyMDlmjugT2lRZ1OfsrYTkCd2hkDnJTKRbO/Rl3orm8vlsUzbA==",
+ "dependencies": {
+ "source-map": "^0.5.6"
+ }
+ },
+ "node_modules/spdx-correct": {
+ "version": "3.1.1",
+ "resolved": "https://registry.npmjs.org/spdx-correct/-/spdx-correct-3.1.1.tgz",
+ "integrity": "sha512-cOYcUWwhCuHCXi49RhFRCyJEK3iPj1Ziz9DpViV3tbZOwXD49QzIN3MpOLJNxh2qwq2lJJZaKMVw9qNi4jTC0w==",
+ "dependencies": {
+ "spdx-expression-parse": "^3.0.0",
+ "spdx-license-ids": "^3.0.0"
+ }
+ },
+ "node_modules/spdx-exceptions": {
+ "version": "2.3.0",
+ "resolved": "https://registry.npmjs.org/spdx-exceptions/-/spdx-exceptions-2.3.0.tgz",
+ "integrity": "sha512-/tTrYOC7PPI1nUAgx34hUpqXuyJG+DTHJTnIULG4rDygi4xu/tfgmq1e1cIRwRzwZgo4NLySi+ricLkZkw4i5A=="
+ },
+ "node_modules/spdx-expression-parse": {
+ "version": "3.0.1",
+ "resolved": "https://registry.npmjs.org/spdx-expression-parse/-/spdx-expression-parse-3.0.1.tgz",
+ "integrity": "sha512-cbqHunsQWnJNE6KhVSMsMeH5H/L9EpymbzqTQ3uLwNCLZ1Q481oWaofqH7nO6V07xlXwY6PhQdQ2IedWx/ZK4Q==",
+ "dependencies": {
+ "spdx-exceptions": "^2.1.0",
+ "spdx-license-ids": "^3.0.0"
+ }
+ },
+ "node_modules/spdx-license-ids": {
+ "version": "3.0.9",
+ "resolved": "https://registry.npmjs.org/spdx-license-ids/-/spdx-license-ids-3.0.9.tgz",
+ "integrity": "sha512-Ki212dKK4ogX+xDo4CtOZBVIwhsKBEfsEEcwmJfLQzirgc2jIWdzg40Unxz/HzEUqM1WFzVlQSMF9kZZ2HboLQ=="
+ },
+ "node_modules/sprintf-js": {
+ "version": "1.0.3",
+ "resolved": "https://registry.npmjs.org/sprintf-js/-/sprintf-js-1.0.3.tgz",
+ "integrity": "sha1-BOaSb2YolTVPPdAVIDYzuFcpfiw="
+ },
+ "node_modules/string.prototype.trimend": {
+ "version": "1.0.4",
+ "resolved": "https://registry.npmjs.org/string.prototype.trimend/-/string.prototype.trimend-1.0.4.tgz",
+ "integrity": "sha512-y9xCjw1P23Awk8EvTpcyL2NIr1j7wJ39f+k6lvRnSMz+mz9CGz9NYPelDk42kOz6+ql8xjfK8oYzy3jAP5QU5A==",
+ "dependencies": {
+ "call-bind": "^1.0.2",
+ "define-properties": "^1.1.3"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/ljharb"
+ }
+ },
+ "node_modules/string.prototype.trimstart": {
+ "version": "1.0.4",
+ "resolved": "https://registry.npmjs.org/string.prototype.trimstart/-/string.prototype.trimstart-1.0.4.tgz",
+ "integrity": "sha512-jh6e984OBfvxS50tdY2nRZnoC5/mLFKOREQfw8t5yytkoUsJRNxvI/E39qu1sD0OtWI3OC0XgKSmcWwziwYuZw==",
+ "dependencies": {
+ "call-bind": "^1.0.2",
+ "define-properties": "^1.1.3"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/ljharb"
+ }
+ },
+ "node_modules/ts-node": {
+ "version": "7.0.1",
+ "resolved": "https://registry.npmjs.org/ts-node/-/ts-node-7.0.1.tgz",
+ "integrity": "sha512-BVwVbPJRspzNh2yfslyT1PSbl5uIk03EZlb493RKHN4qej/D06n1cEhjlOJG69oFsE7OT8XjpTUcYf6pKTLMhw==",
+ "dependencies": {
+ "arrify": "^1.0.0",
+ "buffer-from": "^1.1.0",
+ "diff": "^3.1.0",
+ "make-error": "^1.1.1",
+ "minimist": "^1.2.0",
+ "mkdirp": "^0.5.1",
+ "source-map-support": "^0.5.6",
+ "yn": "^2.0.0"
+ },
+ "bin": {
+ "ts-node": "dist/bin.js"
+ },
+ "engines": {
+ "node": ">=4.2.0"
+ }
+ },
+ "node_modules/ts-node/node_modules/source-map": {
+ "version": "0.6.1",
+ "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz",
+ "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==",
+ "engines": {
+ "node": ">=0.10.0"
+ }
+ },
+ "node_modules/ts-node/node_modules/source-map-support": {
+ "version": "0.5.19",
+ "resolved": "https://registry.npmjs.org/source-map-support/-/source-map-support-0.5.19.tgz",
+ "integrity": "sha512-Wonm7zOCIJzBGQdB+thsPar0kYuCIzYvxZwlBa87yi/Mdjv7Tip2cyVbLj5o0cFPN4EVkuTwb3GDDyUx2DGnGw==",
+ "dependencies": {
+ "buffer-from": "^1.0.0",
+ "source-map": "^0.6.0"
+ }
+ },
+ "node_modules/typescript": {
+ "version": "3.7.7",
+ "resolved": "https://registry.npmjs.org/typescript/-/typescript-3.7.7.tgz",
+ "integrity": "sha512-MmQdgo/XenfZPvVLtKZOq9jQQvzaUAUpcKW8Z43x9B2fOm4S5g//tPtMweZUIP+SoBqrVPEIm+dJeQ9dfO0QdA==",
+ "bin": {
+ "tsc": "bin/tsc",
+ "tsserver": "bin/tsserver"
+ },
+ "engines": {
+ "node": ">=4.2.0"
+ }
+ },
+ "node_modules/unbox-primitive": {
+ "version": "1.0.1",
+ "resolved": "https://registry.npmjs.org/unbox-primitive/-/unbox-primitive-1.0.1.tgz",
+ "integrity": "sha512-tZU/3NqK3dA5gpE1KtyiJUrEB0lxnGkMFHptJ7q6ewdZ8s12QrODwNbhIJStmJkd1QDXa1NRA8aF2A1zk/Ypyw==",
+ "dependencies": {
+ "function-bind": "^1.1.1",
+ "has-bigints": "^1.0.1",
+ "has-symbols": "^1.0.2",
+ "which-boxed-primitive": "^1.0.2"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/ljharb"
+ }
+ },
+ "node_modules/upath": {
+ "version": "1.2.0",
+ "resolved": "https://registry.npmjs.org/upath/-/upath-1.2.0.tgz",
+ "integrity": "sha512-aZwGpamFO61g3OlfT7OQCHqhGnW43ieH9WZeP7QxN/G/jS4jfqUkZxoryvJgVPEcrl5NL/ggHsSmLMHuH64Lhg==",
+ "engines": {
+ "node": ">=4",
+ "yarn": "*"
+ }
+ },
+ "node_modules/url": {
+ "version": "0.10.3",
+ "resolved": "https://registry.npmjs.org/url/-/url-0.10.3.tgz",
+ "integrity": "sha1-Ah5NnHcF8hu/N9A861h2dAJ3TGQ=",
+ "dependencies": {
+ "punycode": "1.3.2",
+ "querystring": "0.2.0"
+ }
+ },
+ "node_modules/util-promisify": {
+ "version": "2.1.0",
+ "resolved": "https://registry.npmjs.org/util-promisify/-/util-promisify-2.1.0.tgz",
+ "integrity": "sha1-PCI2R2xNMsX/PEcAKt18E7moKlM=",
+ "dependencies": {
+ "object.getownpropertydescriptors": "^2.0.3"
+ }
+ },
+ "node_modules/uuid": {
+ "version": "3.3.2",
+ "resolved": "https://registry.npmjs.org/uuid/-/uuid-3.3.2.tgz",
+ "integrity": "sha512-yXJmeNaw3DnnKAOKJE51sL/ZaYfWJRl1pK9dr19YFCu0ObS231AB1/LbqTKRAQ5kw8A90rA6fr4riOUpTZvQZA==",
+ "deprecated": "Please upgrade to version 7 or higher. Older versions may use Math.random() in certain circumstances, which is known to be problematic. See https://v8.dev/blog/math-random for details.",
+ "bin": {
+ "uuid": "bin/uuid"
+ }
+ },
+ "node_modules/validate-npm-package-license": {
+ "version": "3.0.4",
+ "resolved": "https://registry.npmjs.org/validate-npm-package-license/-/validate-npm-package-license-3.0.4.tgz",
+ "integrity": "sha512-DpKm2Ui/xN7/HQKCtpZxoRWBhZ9Z0kqtygG8XCgNQ8ZlDnxuQmWhj566j8fN4Cu3/JmbhsDo7fcAJq4s9h27Ew==",
+ "dependencies": {
+ "spdx-correct": "^3.0.0",
+ "spdx-expression-parse": "^3.0.0"
+ }
+ },
+ "node_modules/which-boxed-primitive": {
+ "version": "1.0.2",
+ "resolved": "https://registry.npmjs.org/which-boxed-primitive/-/which-boxed-primitive-1.0.2.tgz",
+ "integrity": "sha512-bwZdv0AKLpplFY2KZRX6TvyuN7ojjr7lwkg6ml0roIy9YeuSr7JS372qlNW18UQYzgYK9ziGcerWqZOmEn9VNg==",
+ "dependencies": {
+ "is-bigint": "^1.0.1",
+ "is-boolean-object": "^1.1.0",
+ "is-number-object": "^1.0.4",
+ "is-string": "^1.0.5",
+ "is-symbol": "^1.0.3"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/ljharb"
+ }
+ },
+ "node_modules/wrappy": {
+ "version": "1.0.2",
+ "resolved": "https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz",
+ "integrity": "sha1-tSQ9jz7BqjXxNkYFvA0QNuMKtp8="
+ },
+ "node_modules/xml2js": {
+ "version": "0.4.19",
+ "resolved": "https://registry.npmjs.org/xml2js/-/xml2js-0.4.19.tgz",
+ "integrity": "sha512-esZnJZJOiJR9wWKMyuvSE1y6Dq5LCuJanqhxslH2bxM6duahNZ+HMpCLhBQGZkbX6xRf8x1Y2eJlgt2q3qo49Q==",
+ "dependencies": {
+ "sax": ">=0.6.0",
+ "xmlbuilder": "~9.0.1"
+ }
+ },
+ "node_modules/xmlbuilder": {
+ "version": "9.0.7",
+ "resolved": "https://registry.npmjs.org/xmlbuilder/-/xmlbuilder-9.0.7.tgz",
+ "integrity": "sha1-Ey7mPS7FVlxVfiD0wi35rKaGsQ0=",
+ "engines": {
+ "node": ">=4.0"
+ }
+ },
+ "node_modules/yn": {
+ "version": "2.0.0",
+ "resolved": "https://registry.npmjs.org/yn/-/yn-2.0.0.tgz",
+ "integrity": "sha1-5a2ryKz0CPY4X8dklWhMiOavaJo=",
+ "engines": {
+ "node": ">=4"
+ }
+ }
+ },
+ "dependencies": {
+ "@grpc/grpc-js": {
+ "version": "1.3.2",
+ "resolved": "https://registry.npmjs.org/@grpc/grpc-js/-/grpc-js-1.3.2.tgz",
+ "integrity": "sha512-UXepkOKCATJrhHGsxt+CGfpZy9zUn1q9mop5kfcXq1fBkTePxVNPOdnISlCbJFlCtld+pSLGyZCzr9/zVprFKA==",
+ "requires": {
+ "@types/node": ">=12.12.47"
+ },
+ "dependencies": {
+ "@types/node": {
+ "version": "15.12.0",
+ "resolved": "https://registry.npmjs.org/@types/node/-/node-15.12.0.tgz",
+ "integrity": "sha512-+aHJvoCsVhO2ZCuT4o5JtcPrCPyDE3+1nvbDprYes+pPkEsbjH7AGUCNtjMOXS0fqH14t+B7yLzaqSz92FPWyw=="
+ }
+ }
+ },
+ "@logdna/tail-file": {
+ "version": "2.0.7",
+ "resolved": "https://registry.npmjs.org/@logdna/tail-file/-/tail-file-2.0.7.tgz",
+ "integrity": "sha512-ycw0OrbphtfGOnygF+J4J/kJELXifLUiQ/CSTMb9Ztqjnuq4h+Id3MEvt4FTyyyekYbzStx7TjkhqXFW6Mi9LA=="
+ },
+ "@protobufjs/aspromise": {
+ "version": "1.1.2",
+ "resolved": "https://registry.npmjs.org/@protobufjs/aspromise/-/aspromise-1.1.2.tgz",
+ "integrity": "sha1-m4sMxmPWaafY9vXQiToU00jzD78="
+ },
+ "@protobufjs/base64": {
+ "version": "1.1.2",
+ "resolved": "https://registry.npmjs.org/@protobufjs/base64/-/base64-1.1.2.tgz",
+ "integrity": "sha512-AZkcAA5vnN/v4PDqKyMR5lx7hZttPDgClv83E//FMNhR2TMcLUhfRUBHCmSl0oi9zMgDDqRUJkSxO3wm85+XLg=="
+ },
+ "@protobufjs/codegen": {
+ "version": "2.0.4",
+ "resolved": "https://registry.npmjs.org/@protobufjs/codegen/-/codegen-2.0.4.tgz",
+ "integrity": "sha512-YyFaikqM5sH0ziFZCN3xDC7zeGaB/d0IUb9CATugHWbd1FRFwWwt4ld4OYMPWu5a3Xe01mGAULCdqhMlPl29Jg=="
+ },
+ "@protobufjs/eventemitter": {
+ "version": "1.1.0",
+ "resolved": "https://registry.npmjs.org/@protobufjs/eventemitter/-/eventemitter-1.1.0.tgz",
+ "integrity": "sha1-NVy8mLr61ZePntCV85diHx0Ga3A="
+ },
+ "@protobufjs/fetch": {
+ "version": "1.1.0",
+ "resolved": "https://registry.npmjs.org/@protobufjs/fetch/-/fetch-1.1.0.tgz",
+ "integrity": "sha1-upn7WYYUr2VwDBYZ/wbUVLDYTEU=",
+ "requires": {
+ "@protobufjs/aspromise": "^1.1.1",
+ "@protobufjs/inquire": "^1.1.0"
+ }
+ },
+ "@protobufjs/float": {
+ "version": "1.0.2",
+ "resolved": "https://registry.npmjs.org/@protobufjs/float/-/float-1.0.2.tgz",
+ "integrity": "sha1-Xp4avctz/Ap8uLKR33jIy9l7h9E="
+ },
+ "@protobufjs/inquire": {
+ "version": "1.1.0",
+ "resolved": "https://registry.npmjs.org/@protobufjs/inquire/-/inquire-1.1.0.tgz",
+ "integrity": "sha1-/yAOPnzyQp4tyvwRQIKOjMY48Ik="
+ },
+ "@protobufjs/path": {
+ "version": "1.1.2",
+ "resolved": "https://registry.npmjs.org/@protobufjs/path/-/path-1.1.2.tgz",
+ "integrity": "sha1-bMKyDFya1q0NzP0hynZz2Nf79o0="
+ },
+ "@protobufjs/pool": {
+ "version": "1.1.0",
+ "resolved": "https://registry.npmjs.org/@protobufjs/pool/-/pool-1.1.0.tgz",
+ "integrity": "sha1-Cf0V8tbTq/qbZbw2ZQbWrXhG/1Q="
+ },
+ "@protobufjs/utf8": {
+ "version": "1.1.0",
+ "resolved": "https://registry.npmjs.org/@protobufjs/utf8/-/utf8-1.1.0.tgz",
+ "integrity": "sha1-p3c2C1s5oaLlEG+OhY8v0tBgxXA="
+ },
+ "@pulumi/aws": {
+ "version": "4.6.0",
+ "resolved": "https://registry.npmjs.org/@pulumi/aws/-/aws-4.6.0.tgz",
+ "integrity": "sha512-it0Q9FUd7v/2PgAvoXxTrTT/kQM1iwLNrxnBDabByQsGIOpp4jj4C+sexOoMH4IbKz6mwkLUaPS84QU/qDfndg==",
+ "requires": {
+ "@pulumi/pulumi": "^3.0.0",
+ "aws-sdk": "^2.0.0",
+ "builtin-modules": "3.0.0",
+ "mime": "^2.0.0",
+ "read-package-tree": "^5.2.1",
+ "resolve": "^1.7.1"
+ }
+ },
+ "@pulumi/pulumi": {
+ "version": "3.3.1",
+ "resolved": "https://registry.npmjs.org/@pulumi/pulumi/-/pulumi-3.3.1.tgz",
+ "integrity": "sha512-W5HBFCQUY67QaPXtDSZ6Fe/K8mB+X7tJqi2pBU6UUUMtJVndcZ5BpLkZBznu+Nq/ZmitmGVaOpUqC5yK70D98A==",
+ "requires": {
+ "@grpc/grpc-js": "^1.2.7",
+ "@logdna/tail-file": "^2.0.6",
+ "@pulumi/query": "^0.3.0",
+ "google-protobuf": "^3.5.0",
+ "js-yaml": "^3.14.0",
+ "minimist": "^1.2.0",
+ "normalize-package-data": "^2.4.0",
+ "protobufjs": "^6.8.6",
+ "read-package-tree": "^5.3.1",
+ "require-from-string": "^2.0.1",
+ "semver": "^6.1.0",
+ "source-map-support": "^0.4.16",
+ "ts-node": "^7.0.1",
+ "typescript": "~3.7.3",
+ "upath": "^1.1.0"
+ }
+ },
+ "@pulumi/query": {
+ "version": "0.3.0",
+ "resolved": "https://registry.npmjs.org/@pulumi/query/-/query-0.3.0.tgz",
+ "integrity": "sha512-xfo+yLRM2zVjVEA4p23IjQWzyWl1ZhWOGobsBqRpIarzLvwNH/RAGaoehdxlhx4X92302DrpdIFgTICMN4P38w=="
+ },
+ "@pulumi/random": {
+ "version": "4.2.0",
+ "resolved": "https://registry.npmjs.org/@pulumi/random/-/random-4.2.0.tgz",
+ "integrity": "sha512-zdkI6AO2W0H4UwYlKLijccBkkylH1XoqXPoZ8l5shKnOAZVa5izmLkIw2wQOT65BAwjvfczZgdNpPng9n7W06w==",
+ "requires": {
+ "@pulumi/pulumi": "^3.0.0"
+ }
+ },
+ "@types/long": {
+ "version": "4.0.1",
+ "resolved": "https://registry.npmjs.org/@types/long/-/long-4.0.1.tgz",
+ "integrity": "sha512-5tXH6Bx/kNGd3MgffdmP4dy2Z+G4eaXw0SE81Tq3BNadtnMR5/ySMzX4SLEzHJzSmPNn4HIdpQsBvXMUykr58w=="
+ },
+ "@types/node": {
+ "version": "8.10.66",
+ "resolved": "https://registry.npmjs.org/@types/node/-/node-8.10.66.tgz",
+ "integrity": "sha512-tktOkFUA4kXx2hhhrB8bIFb5TbwzS4uOhKEmwiD+NoiL0qtP2OQ9mFldbgD4dV1djrlBYP6eBuQZiWjuHUpqFw==",
+ "dev": true
+ },
+ "argparse": {
+ "version": "1.0.10",
+ "resolved": "https://registry.npmjs.org/argparse/-/argparse-1.0.10.tgz",
+ "integrity": "sha512-o5Roy6tNG4SL/FOkCAN6RzjiakZS25RLYFrcMttJqbdd8BWrnA+fGz57iN5Pb06pvBGvl5gQ0B48dJlslXvoTg==",
+ "requires": {
+ "sprintf-js": "~1.0.2"
+ }
+ },
+ "arrify": {
+ "version": "1.0.1",
+ "resolved": "https://registry.npmjs.org/arrify/-/arrify-1.0.1.tgz",
+ "integrity": "sha1-iYUI2iIm84DfkEcoRWhJwVAaSw0="
+ },
+ "asap": {
+ "version": "2.0.6",
+ "resolved": "https://registry.npmjs.org/asap/-/asap-2.0.6.tgz",
+ "integrity": "sha1-5QNHYR1+aQlDIIu9r+vLwvuGbUY="
+ },
+ "aws-sdk": {
+ "version": "2.920.0",
+ "resolved": "https://registry.npmjs.org/aws-sdk/-/aws-sdk-2.920.0.tgz",
+ "integrity": "sha512-tbMZ/Y2rRo6R6TTBODJXTiil+MXaoT6Qzotws3yvI1IWGpYxKo7N/3L06XB8ul8tCG0TigxIOY70SMICM70Ppg==",
+ "requires": {
+ "buffer": "4.9.2",
+ "events": "1.1.1",
+ "ieee754": "1.1.13",
+ "jmespath": "0.15.0",
+ "querystring": "0.2.0",
+ "sax": "1.2.1",
+ "url": "0.10.3",
+ "uuid": "3.3.2",
+ "xml2js": "0.4.19"
+ }
+ },
+ "balanced-match": {
+ "version": "1.0.2",
+ "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.2.tgz",
+ "integrity": "sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw=="
+ },
+ "base64-js": {
+ "version": "1.5.1",
+ "resolved": "https://registry.npmjs.org/base64-js/-/base64-js-1.5.1.tgz",
+ "integrity": "sha512-AKpaYlHn8t4SVbOHCy+b5+KKgvR4vrsD8vbvrbiQJps7fKDTkjkDry6ji0rUJjC0kzbNePLwzxq8iypo41qeWA=="
+ },
+ "brace-expansion": {
+ "version": "1.1.11",
+ "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz",
+ "integrity": "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==",
+ "requires": {
+ "balanced-match": "^1.0.0",
+ "concat-map": "0.0.1"
+ }
+ },
+ "buffer": {
+ "version": "4.9.2",
+ "resolved": "https://registry.npmjs.org/buffer/-/buffer-4.9.2.tgz",
+ "integrity": "sha512-xq+q3SRMOxGivLhBNaUdC64hDTQwejJ+H0T/NB1XMtTVEwNTrfFF3gAxiyW0Bu/xWEGhjVKgUcMhCrUy2+uCWg==",
+ "requires": {
+ "base64-js": "^1.0.2",
+ "ieee754": "^1.1.4",
+ "isarray": "^1.0.0"
+ }
+ },
+ "buffer-from": {
+ "version": "1.1.1",
+ "resolved": "https://registry.npmjs.org/buffer-from/-/buffer-from-1.1.1.tgz",
+ "integrity": "sha512-MQcXEUbCKtEo7bhqEs6560Hyd4XaovZlO/k9V3hjVUF/zwW7KBVdSK4gIt/bzwS9MbR5qob+F5jusZsb0YQK2A=="
+ },
+ "builtin-modules": {
+ "version": "3.0.0",
+ "resolved": "https://registry.npmjs.org/builtin-modules/-/builtin-modules-3.0.0.tgz",
+ "integrity": "sha512-hMIeU4K2ilbXV6Uv93ZZ0Avg/M91RaKXucQ+4me2Do1txxBDyDZWCBa5bJSLqoNTRpXTLwEzIk1KmloenDDjhg=="
+ },
+ "call-bind": {
+ "version": "1.0.2",
+ "resolved": "https://registry.npmjs.org/call-bind/-/call-bind-1.0.2.tgz",
+ "integrity": "sha512-7O+FbCihrB5WGbFYesctwmTKae6rOiIzmz1icreWJ+0aA7LJfuqhEso2T9ncpcFtzMQtzXf2QGGueWJGTYsqrA==",
+ "requires": {
+ "function-bind": "^1.1.1",
+ "get-intrinsic": "^1.0.2"
+ }
+ },
+ "concat-map": {
+ "version": "0.0.1",
+ "resolved": "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz",
+ "integrity": "sha1-2Klr13/Wjfd5OnMDajug1UBdR3s="
+ },
+ "debuglog": {
+ "version": "1.0.1",
+ "resolved": "https://registry.npmjs.org/debuglog/-/debuglog-1.0.1.tgz",
+ "integrity": "sha1-qiT/uaw9+aI1GDfPstJ5NgzXhJI="
+ },
+ "define-properties": {
+ "version": "1.1.3",
+ "resolved": "https://registry.npmjs.org/define-properties/-/define-properties-1.1.3.tgz",
+ "integrity": "sha512-3MqfYKj2lLzdMSf8ZIZE/V+Zuy+BgD6f164e8K2w7dgnpKArBDerGYpM46IYYcjnkdPNMjPk9A6VFB8+3SKlXQ==",
+ "requires": {
+ "object-keys": "^1.0.12"
+ }
+ },
+ "dezalgo": {
+ "version": "1.0.3",
+ "resolved": "https://registry.npmjs.org/dezalgo/-/dezalgo-1.0.3.tgz",
+ "integrity": "sha1-f3Qt4Gb8dIvI24IFad3c5Jvw1FY=",
+ "requires": {
+ "asap": "^2.0.0",
+ "wrappy": "1"
+ }
+ },
+ "diff": {
+ "version": "3.5.0",
+ "resolved": "https://registry.npmjs.org/diff/-/diff-3.5.0.tgz",
+ "integrity": "sha512-A46qtFgd+g7pDZinpnwiRJtxbC1hpgf0uzP3iG89scHk0AUC7A1TGxf5OiiOUv/JMZR8GOt8hL900hV0bOy5xA=="
+ },
+ "es-abstract": {
+ "version": "1.18.3",
+ "resolved": "https://registry.npmjs.org/es-abstract/-/es-abstract-1.18.3.tgz",
+ "integrity": "sha512-nQIr12dxV7SSxE6r6f1l3DtAeEYdsGpps13dR0TwJg1S8gyp4ZPgy3FZcHBgbiQqnoqSTb+oC+kO4UQ0C/J8vw==",
+ "requires": {
+ "call-bind": "^1.0.2",
+ "es-to-primitive": "^1.2.1",
+ "function-bind": "^1.1.1",
+ "get-intrinsic": "^1.1.1",
+ "has": "^1.0.3",
+ "has-symbols": "^1.0.2",
+ "is-callable": "^1.2.3",
+ "is-negative-zero": "^2.0.1",
+ "is-regex": "^1.1.3",
+ "is-string": "^1.0.6",
+ "object-inspect": "^1.10.3",
+ "object-keys": "^1.1.1",
+ "object.assign": "^4.1.2",
+ "string.prototype.trimend": "^1.0.4",
+ "string.prototype.trimstart": "^1.0.4",
+ "unbox-primitive": "^1.0.1"
+ }
+ },
+ "es-to-primitive": {
+ "version": "1.2.1",
+ "resolved": "https://registry.npmjs.org/es-to-primitive/-/es-to-primitive-1.2.1.tgz",
+ "integrity": "sha512-QCOllgZJtaUo9miYBcLChTUaHNjJF3PYs1VidD7AwiEj1kYxKeQTctLAezAOH5ZKRH0g2IgPn6KwB4IT8iRpvA==",
+ "requires": {
+ "is-callable": "^1.1.4",
+ "is-date-object": "^1.0.1",
+ "is-symbol": "^1.0.2"
+ }
+ },
+ "esprima": {
+ "version": "4.0.1",
+ "resolved": "https://registry.npmjs.org/esprima/-/esprima-4.0.1.tgz",
+ "integrity": "sha512-eGuFFw7Upda+g4p+QHvnW0RyTX/SVeJBDM/gCtMARO0cLuT2HcEKnTPvhjV6aGeqrCB/sbNop0Kszm0jsaWU4A=="
+ },
+ "events": {
+ "version": "1.1.1",
+ "resolved": "https://registry.npmjs.org/events/-/events-1.1.1.tgz",
+ "integrity": "sha1-nr23Y1rQmccNzEwqH1AEKI6L2SQ="
+ },
+ "fs.realpath": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/fs.realpath/-/fs.realpath-1.0.0.tgz",
+ "integrity": "sha1-FQStJSMVjKpA20onh8sBQRmU6k8="
+ },
+ "function-bind": {
+ "version": "1.1.1",
+ "resolved": "https://registry.npmjs.org/function-bind/-/function-bind-1.1.1.tgz",
+ "integrity": "sha512-yIovAzMX49sF8Yl58fSCWJ5svSLuaibPxXQJFLmBObTuCr0Mf1KiPopGM9NiFjiYBCbfaa2Fh6breQ6ANVTI0A=="
+ },
+ "get-intrinsic": {
+ "version": "1.1.1",
+ "resolved": "https://registry.npmjs.org/get-intrinsic/-/get-intrinsic-1.1.1.tgz",
+ "integrity": "sha512-kWZrnVM42QCiEA2Ig1bG8zjoIMOgxWwYCEeNdwY6Tv/cOSeGpcoX4pXHfKUxNKVoArnrEr2e9srnAxxGIraS9Q==",
+ "requires": {
+ "function-bind": "^1.1.1",
+ "has": "^1.0.3",
+ "has-symbols": "^1.0.1"
+ }
+ },
+ "glob": {
+ "version": "7.1.7",
+ "resolved": "https://registry.npmjs.org/glob/-/glob-7.1.7.tgz",
+ "integrity": "sha512-OvD9ENzPLbegENnYP5UUfJIirTg4+XwMWGaQfQTY0JenxNvvIKP3U3/tAQSPIu/lHxXYSZmpXlUHeqAIdKzBLQ==",
+ "requires": {
+ "fs.realpath": "^1.0.0",
+ "inflight": "^1.0.4",
+ "inherits": "2",
+ "minimatch": "^3.0.4",
+ "once": "^1.3.0",
+ "path-is-absolute": "^1.0.0"
+ }
+ },
+ "google-protobuf": {
+ "version": "3.17.2",
+ "resolved": "https://registry.npmjs.org/google-protobuf/-/google-protobuf-3.17.2.tgz",
+ "integrity": "sha512-LlFVMhSkNy6C1MakEjiwbLxq5w+V+Go+mvt2EUoysrp8gXl903ic2W/3BwzM4/WnDMJP+u7UO2efUSl/0CJMzA=="
+ },
+ "graceful-fs": {
+ "version": "4.2.6",
+ "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.2.6.tgz",
+ "integrity": "sha512-nTnJ528pbqxYanhpDYsi4Rd8MAeaBA67+RZ10CM1m3bTAVFEDcd5AuA4a6W5YkGZ1iNXHzZz8T6TBKLeBuNriQ=="
+ },
+ "has": {
+ "version": "1.0.3",
+ "resolved": "https://registry.npmjs.org/has/-/has-1.0.3.tgz",
+ "integrity": "sha512-f2dvO0VU6Oej7RkWJGrehjbzMAjFp5/VKPp5tTpWIV4JHHZK1/BxbFRtf/siA2SWTe09caDmVtYYzWEIbBS4zw==",
+ "requires": {
+ "function-bind": "^1.1.1"
+ }
+ },
+ "has-bigints": {
+ "version": "1.0.1",
+ "resolved": "https://registry.npmjs.org/has-bigints/-/has-bigints-1.0.1.tgz",
+ "integrity": "sha512-LSBS2LjbNBTf6287JEbEzvJgftkF5qFkmCo9hDRpAzKhUOlJ+hx8dd4USs00SgsUNwc4617J9ki5YtEClM2ffA=="
+ },
+ "has-symbols": {
+ "version": "1.0.2",
+ "resolved": "https://registry.npmjs.org/has-symbols/-/has-symbols-1.0.2.tgz",
+ "integrity": "sha512-chXa79rL/UC2KlX17jo3vRGz0azaWEx5tGqZg5pO3NUyEJVB17dMruQlzCCOfUvElghKcm5194+BCRvi2Rv/Gw=="
+ },
+ "hosted-git-info": {
+ "version": "2.8.9",
+ "resolved": "https://registry.npmjs.org/hosted-git-info/-/hosted-git-info-2.8.9.tgz",
+ "integrity": "sha512-mxIDAb9Lsm6DoOJ7xH+5+X4y1LU/4Hi50L9C5sIswK3JzULS4bwk1FvjdBgvYR4bzT4tuUQiC15FE2f5HbLvYw=="
+ },
+ "ieee754": {
+ "version": "1.1.13",
+ "resolved": "https://registry.npmjs.org/ieee754/-/ieee754-1.1.13.tgz",
+ "integrity": "sha512-4vf7I2LYV/HaWerSo3XmlMkp5eZ83i+/CDluXi/IGTs/O1sejBNhTtnxzmRZfvOUqj7lZjqHkeTvpgSFDlWZTg=="
+ },
+ "inflight": {
+ "version": "1.0.6",
+ "resolved": "https://registry.npmjs.org/inflight/-/inflight-1.0.6.tgz",
+ "integrity": "sha1-Sb1jMdfQLQwJvJEKEHW6gWW1bfk=",
+ "requires": {
+ "once": "^1.3.0",
+ "wrappy": "1"
+ }
+ },
+ "inherits": {
+ "version": "2.0.4",
+ "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.4.tgz",
+ "integrity": "sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ=="
+ },
+ "is-bigint": {
+ "version": "1.0.2",
+ "resolved": "https://registry.npmjs.org/is-bigint/-/is-bigint-1.0.2.tgz",
+ "integrity": "sha512-0JV5+SOCQkIdzjBK9buARcV804Ddu7A0Qet6sHi3FimE9ne6m4BGQZfRn+NZiXbBk4F4XmHfDZIipLj9pX8dSA=="
+ },
+ "is-boolean-object": {
+ "version": "1.1.1",
+ "resolved": "https://registry.npmjs.org/is-boolean-object/-/is-boolean-object-1.1.1.tgz",
+ "integrity": "sha512-bXdQWkECBUIAcCkeH1unwJLIpZYaa5VvuygSyS/c2lf719mTKZDU5UdDRlpd01UjADgmW8RfqaP+mRaVPdr/Ng==",
+ "requires": {
+ "call-bind": "^1.0.2"
+ }
+ },
+ "is-callable": {
+ "version": "1.2.3",
+ "resolved": "https://registry.npmjs.org/is-callable/-/is-callable-1.2.3.tgz",
+ "integrity": "sha512-J1DcMe8UYTBSrKezuIUTUwjXsho29693unXM2YhJUTR2txK/eG47bvNa/wipPFmZFgr/N6f1GA66dv0mEyTIyQ=="
+ },
+ "is-core-module": {
+ "version": "2.4.0",
+ "resolved": "https://registry.npmjs.org/is-core-module/-/is-core-module-2.4.0.tgz",
+ "integrity": "sha512-6A2fkfq1rfeQZjxrZJGerpLCTHRNEBiSgnu0+obeJpEPZRUooHgsizvzv0ZjJwOz3iWIHdJtVWJ/tmPr3D21/A==",
+ "requires": {
+ "has": "^1.0.3"
+ }
+ },
+ "is-date-object": {
+ "version": "1.0.4",
+ "resolved": "https://registry.npmjs.org/is-date-object/-/is-date-object-1.0.4.tgz",
+ "integrity": "sha512-/b4ZVsG7Z5XVtIxs/h9W8nvfLgSAyKYdtGWQLbqy6jA1icmgjf8WCoTKgeS4wy5tYaPePouzFMANbnj94c2Z+A=="
+ },
+ "is-negative-zero": {
+ "version": "2.0.1",
+ "resolved": "https://registry.npmjs.org/is-negative-zero/-/is-negative-zero-2.0.1.tgz",
+ "integrity": "sha512-2z6JzQvZRa9A2Y7xC6dQQm4FSTSTNWjKIYYTt4246eMTJmIo0Q+ZyOsU66X8lxK1AbB92dFeglPLrhwpeRKO6w=="
+ },
+ "is-number-object": {
+ "version": "1.0.5",
+ "resolved": "https://registry.npmjs.org/is-number-object/-/is-number-object-1.0.5.tgz",
+ "integrity": "sha512-RU0lI/n95pMoUKu9v1BZP5MBcZuNSVJkMkAG2dJqC4z2GlkGUNeH68SuHuBKBD/XFe+LHZ+f9BKkLET60Niedw=="
+ },
+ "is-regex": {
+ "version": "1.1.3",
+ "resolved": "https://registry.npmjs.org/is-regex/-/is-regex-1.1.3.tgz",
+ "integrity": "sha512-qSVXFz28HM7y+IWX6vLCsexdlvzT1PJNFSBuaQLQ5o0IEw8UDYW6/2+eCMVyIsbM8CNLX2a/QWmSpyxYEHY7CQ==",
+ "requires": {
+ "call-bind": "^1.0.2",
+ "has-symbols": "^1.0.2"
+ }
+ },
+ "is-string": {
+ "version": "1.0.6",
+ "resolved": "https://registry.npmjs.org/is-string/-/is-string-1.0.6.tgz",
+ "integrity": "sha512-2gdzbKUuqtQ3lYNrUTQYoClPhm7oQu4UdpSZMp1/DGgkHBT8E2Z1l0yMdb6D4zNAxwDiMv8MdulKROJGNl0Q0w=="
+ },
+ "is-symbol": {
+ "version": "1.0.4",
+ "resolved": "https://registry.npmjs.org/is-symbol/-/is-symbol-1.0.4.tgz",
+ "integrity": "sha512-C/CPBqKWnvdcxqIARxyOh4v1UUEOCHpgDa0WYgpKDFMszcrPcffg5uhwSgPCLD2WWxmq6isisz87tzT01tuGhg==",
+ "requires": {
+ "has-symbols": "^1.0.2"
+ }
+ },
+ "isarray": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz",
+ "integrity": "sha1-u5NdSFgsuhaMBoNJV6VKPgcSTxE="
+ },
+ "jmespath": {
+ "version": "0.15.0",
+ "resolved": "https://registry.npmjs.org/jmespath/-/jmespath-0.15.0.tgz",
+ "integrity": "sha1-o/Iiqarp+Wb10nx5ZRDigJF2Qhc="
+ },
+ "js-yaml": {
+ "version": "3.14.1",
+ "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-3.14.1.tgz",
+ "integrity": "sha512-okMH7OXXJ7YrN9Ok3/SXrnu4iX9yOk+25nqX4imS2npuvTYDmo/QEZoqwZkYaIDk3jVvBOTOIEgEhaLOynBS9g==",
+ "requires": {
+ "argparse": "^1.0.7",
+ "esprima": "^4.0.0"
+ }
+ },
+ "json-parse-even-better-errors": {
+ "version": "2.3.1",
+ "resolved": "https://registry.npmjs.org/json-parse-even-better-errors/-/json-parse-even-better-errors-2.3.1.tgz",
+ "integrity": "sha512-xyFwyhro/JEof6Ghe2iz2NcXoj2sloNsWr/XsERDK/oiPCfaNhl5ONfp+jQdAZRQQ0IJWNzH9zIZF7li91kh2w=="
+ },
+ "long": {
+ "version": "4.0.0",
+ "resolved": "https://registry.npmjs.org/long/-/long-4.0.0.tgz",
+ "integrity": "sha512-XsP+KhQif4bjX1kbuSiySJFNAehNxgLb6hPRGJ9QsUr8ajHkuXGdrHmFUTUUXhDwVX2R5bY4JNZEwbUiMhV+MA=="
+ },
+ "make-error": {
+ "version": "1.3.6",
+ "resolved": "https://registry.npmjs.org/make-error/-/make-error-1.3.6.tgz",
+ "integrity": "sha512-s8UhlNe7vPKomQhC1qFelMokr/Sc3AgNbso3n74mVPA5LTZwkB9NlXf4XPamLxJE8h0gh73rM94xvwRT2CVInw=="
+ },
+ "mime": {
+ "version": "2.5.2",
+ "resolved": "https://registry.npmjs.org/mime/-/mime-2.5.2.tgz",
+ "integrity": "sha512-tqkh47FzKeCPD2PUiPB6pkbMzsCasjxAfC62/Wap5qrUWcb+sFasXUC5I3gYM5iBM8v/Qpn4UK0x+j0iHyFPDg=="
+ },
+ "minimatch": {
+ "version": "3.0.4",
+ "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.0.4.tgz",
+ "integrity": "sha512-yJHVQEhyqPLUTgt9B83PXu6W3rx4MvvHvSUvToogpwoGDOUQ+yDrR0HRot+yOCdCO7u4hX3pWft6kWBBcqh0UA==",
+ "requires": {
+ "brace-expansion": "^1.1.7"
+ }
+ },
+ "minimist": {
+ "version": "1.2.5",
+ "resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.5.tgz",
+ "integrity": "sha512-FM9nNUYrRBAELZQT3xeZQ7fmMOBg6nWNmJKTcgsJeaLstP/UODVpGsr5OhXhhXg6f+qtJ8uiZ+PUxkDWcgIXLw=="
+ },
+ "mkdirp": {
+ "version": "0.5.5",
+ "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-0.5.5.tgz",
+ "integrity": "sha512-NKmAlESf6jMGym1++R0Ra7wvhV+wFW63FaSOFPwRahvea0gMUcGUhVeAg/0BC0wiv9ih5NYPB1Wn1UEI1/L+xQ==",
+ "requires": {
+ "minimist": "^1.2.5"
+ }
+ },
+ "normalize-package-data": {
+ "version": "2.5.0",
+ "resolved": "https://registry.npmjs.org/normalize-package-data/-/normalize-package-data-2.5.0.tgz",
+ "integrity": "sha512-/5CMN3T0R4XTj4DcGaexo+roZSdSFW/0AOOTROrjxzCG1wrWXEsGbRKevjlIL+ZDE4sZlJr5ED4YW0yqmkK+eA==",
+ "requires": {
+ "hosted-git-info": "^2.1.4",
+ "resolve": "^1.10.0",
+ "semver": "2 || 3 || 4 || 5",
+ "validate-npm-package-license": "^3.0.1"
+ },
+ "dependencies": {
+ "semver": {
+ "version": "5.7.1",
+ "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.1.tgz",
+ "integrity": "sha512-sauaDf/PZdVgrLTNYHRtpXa1iRiKcaebiKQ1BJdpQlWH2lCvexQdX55snPFyK7QzpudqbCI0qXFfOasHdyNDGQ=="
+ }
+ }
+ },
+ "npm-normalize-package-bin": {
+ "version": "1.0.1",
+ "resolved": "https://registry.npmjs.org/npm-normalize-package-bin/-/npm-normalize-package-bin-1.0.1.tgz",
+ "integrity": "sha512-EPfafl6JL5/rU+ot6P3gRSCpPDW5VmIzX959Ob1+ySFUuuYHWHekXpwdUZcKP5C+DS4GEtdJluwBjnsNDl+fSA=="
+ },
+ "object-inspect": {
+ "version": "1.10.3",
+ "resolved": "https://registry.npmjs.org/object-inspect/-/object-inspect-1.10.3.tgz",
+ "integrity": "sha512-e5mCJlSH7poANfC8z8S9s9S2IN5/4Zb3aZ33f5s8YqoazCFzNLloLU8r5VCG+G7WoqLvAAZoVMcy3tp/3X0Plw=="
+ },
+ "object-keys": {
+ "version": "1.1.1",
+ "resolved": "https://registry.npmjs.org/object-keys/-/object-keys-1.1.1.tgz",
+ "integrity": "sha512-NuAESUOUMrlIXOfHKzD6bpPu3tYt3xvjNdRIQ+FeT0lNb4K8WR70CaDxhuNguS2XG+GjkyMwOzsN5ZktImfhLA=="
+ },
+ "object.assign": {
+ "version": "4.1.2",
+ "resolved": "https://registry.npmjs.org/object.assign/-/object.assign-4.1.2.tgz",
+ "integrity": "sha512-ixT2L5THXsApyiUPYKmW+2EHpXXe5Ii3M+f4e+aJFAHao5amFRW6J0OO6c/LU8Be47utCx2GL89hxGB6XSmKuQ==",
+ "requires": {
+ "call-bind": "^1.0.0",
+ "define-properties": "^1.1.3",
+ "has-symbols": "^1.0.1",
+ "object-keys": "^1.1.1"
+ }
+ },
+ "object.getownpropertydescriptors": {
+ "version": "2.1.2",
+ "resolved": "https://registry.npmjs.org/object.getownpropertydescriptors/-/object.getownpropertydescriptors-2.1.2.tgz",
+ "integrity": "sha512-WtxeKSzfBjlzL+F9b7M7hewDzMwy+C8NRssHd1YrNlzHzIDrXcXiNOMrezdAEM4UXixgV+vvnyBeN7Rygl2ttQ==",
+ "requires": {
+ "call-bind": "^1.0.2",
+ "define-properties": "^1.1.3",
+ "es-abstract": "^1.18.0-next.2"
+ }
+ },
+ "once": {
+ "version": "1.4.0",
+ "resolved": "https://registry.npmjs.org/once/-/once-1.4.0.tgz",
+ "integrity": "sha1-WDsap3WWHUsROsF9nFC6753Xa9E=",
+ "requires": {
+ "wrappy": "1"
+ }
+ },
+ "path-is-absolute": {
+ "version": "1.0.1",
+ "resolved": "https://registry.npmjs.org/path-is-absolute/-/path-is-absolute-1.0.1.tgz",
+ "integrity": "sha1-F0uSaHNVNP+8es5r9TpanhtcX18="
+ },
+ "path-parse": {
+ "version": "1.0.7",
+ "resolved": "https://registry.npmjs.org/path-parse/-/path-parse-1.0.7.tgz",
+ "integrity": "sha512-LDJzPVEEEPR+y48z93A0Ed0yXb8pAByGWo/k5YYdYgpY2/2EsOsksJrq7lOHxryrVOn1ejG6oAp8ahvOIQD8sw=="
+ },
+ "protobufjs": {
+ "version": "6.11.2",
+ "resolved": "https://registry.npmjs.org/protobufjs/-/protobufjs-6.11.2.tgz",
+ "integrity": "sha512-4BQJoPooKJl2G9j3XftkIXjoC9C0Av2NOrWmbLWT1vH32GcSUHjM0Arra6UfTsVyfMAuFzaLucXn1sadxJydAw==",
+ "requires": {
+ "@protobufjs/aspromise": "^1.1.2",
+ "@protobufjs/base64": "^1.1.2",
+ "@protobufjs/codegen": "^2.0.4",
+ "@protobufjs/eventemitter": "^1.1.0",
+ "@protobufjs/fetch": "^1.1.0",
+ "@protobufjs/float": "^1.0.2",
+ "@protobufjs/inquire": "^1.1.0",
+ "@protobufjs/path": "^1.1.2",
+ "@protobufjs/pool": "^1.1.0",
+ "@protobufjs/utf8": "^1.1.0",
+ "@types/long": "^4.0.1",
+ "@types/node": ">=13.7.0",
+ "long": "^4.0.0"
+ },
+ "dependencies": {
+ "@types/node": {
+ "version": "15.12.0",
+ "resolved": "https://registry.npmjs.org/@types/node/-/node-15.12.0.tgz",
+ "integrity": "sha512-+aHJvoCsVhO2ZCuT4o5JtcPrCPyDE3+1nvbDprYes+pPkEsbjH7AGUCNtjMOXS0fqH14t+B7yLzaqSz92FPWyw=="
+ }
+ }
+ },
+ "punycode": {
+ "version": "1.3.2",
+ "resolved": "https://registry.npmjs.org/punycode/-/punycode-1.3.2.tgz",
+ "integrity": "sha1-llOgNvt8HuQjQvIyXM7v6jkmxI0="
+ },
+ "querystring": {
+ "version": "0.2.0",
+ "resolved": "https://registry.npmjs.org/querystring/-/querystring-0.2.0.tgz",
+ "integrity": "sha1-sgmEkgO7Jd+CDadW50cAWHhSFiA="
+ },
+ "read-package-json": {
+ "version": "2.1.2",
+ "resolved": "https://registry.npmjs.org/read-package-json/-/read-package-json-2.1.2.tgz",
+ "integrity": "sha512-D1KmuLQr6ZSJS0tW8hf3WGpRlwszJOXZ3E8Yd/DNRaM5d+1wVRZdHlpGBLAuovjr28LbWvjpWkBHMxpRGGjzNA==",
+ "requires": {
+ "glob": "^7.1.1",
+ "json-parse-even-better-errors": "^2.3.0",
+ "normalize-package-data": "^2.0.0",
+ "npm-normalize-package-bin": "^1.0.0"
+ }
+ },
+ "read-package-tree": {
+ "version": "5.3.1",
+ "resolved": "https://registry.npmjs.org/read-package-tree/-/read-package-tree-5.3.1.tgz",
+ "integrity": "sha512-mLUDsD5JVtlZxjSlPPx1RETkNjjvQYuweKwNVt1Sn8kP5Jh44pvYuUHCp6xSVDZWbNxVxG5lyZJ921aJH61sTw==",
+ "requires": {
+ "read-package-json": "^2.0.0",
+ "readdir-scoped-modules": "^1.0.0",
+ "util-promisify": "^2.1.0"
+ }
+ },
+ "readdir-scoped-modules": {
+ "version": "1.1.0",
+ "resolved": "https://registry.npmjs.org/readdir-scoped-modules/-/readdir-scoped-modules-1.1.0.tgz",
+ "integrity": "sha512-asaikDeqAQg7JifRsZn1NJZXo9E+VwlyCfbkZhwyISinqk5zNS6266HS5kah6P0SaQKGF6SkNnZVHUzHFYxYDw==",
+ "requires": {
+ "debuglog": "^1.0.1",
+ "dezalgo": "^1.0.0",
+ "graceful-fs": "^4.1.2",
+ "once": "^1.3.0"
+ }
+ },
+ "require-from-string": {
+ "version": "2.0.2",
+ "resolved": "https://registry.npmjs.org/require-from-string/-/require-from-string-2.0.2.tgz",
+ "integrity": "sha512-Xf0nWe6RseziFMu+Ap9biiUbmplq6S9/p+7w7YXP/JBHhrUDDUhwa+vANyubuqfZWTveU//DYVGsDG7RKL/vEw=="
+ },
+ "resolve": {
+ "version": "1.20.0",
+ "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.20.0.tgz",
+ "integrity": "sha512-wENBPt4ySzg4ybFQW2TT1zMQucPK95HSh/nq2CFTZVOGut2+pQvSsgtda4d26YrYcr067wjbmzOG8byDPBX63A==",
+ "requires": {
+ "is-core-module": "^2.2.0",
+ "path-parse": "^1.0.6"
+ }
+ },
+ "sax": {
+ "version": "1.2.1",
+ "resolved": "https://registry.npmjs.org/sax/-/sax-1.2.1.tgz",
+ "integrity": "sha1-e45lYZCyKOgaZq6nSEgNgozS03o="
+ },
+ "semver": {
+ "version": "6.3.0",
+ "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz",
+ "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw=="
+ },
+ "source-map": {
+ "version": "0.5.7",
+ "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.5.7.tgz",
+ "integrity": "sha1-igOdLRAh0i0eoUyA2OpGi6LvP8w="
+ },
+ "source-map-support": {
+ "version": "0.4.18",
+ "resolved": "https://registry.npmjs.org/source-map-support/-/source-map-support-0.4.18.tgz",
+ "integrity": "sha512-try0/JqxPLF9nOjvSta7tVondkP5dwgyLDjVoyMDlmjugT2lRZ1OfsrYTkCd2hkDnJTKRbO/Rl3orm8vlsUzbA==",
+ "requires": {
+ "source-map": "^0.5.6"
+ }
+ },
+ "spdx-correct": {
+ "version": "3.1.1",
+ "resolved": "https://registry.npmjs.org/spdx-correct/-/spdx-correct-3.1.1.tgz",
+ "integrity": "sha512-cOYcUWwhCuHCXi49RhFRCyJEK3iPj1Ziz9DpViV3tbZOwXD49QzIN3MpOLJNxh2qwq2lJJZaKMVw9qNi4jTC0w==",
+ "requires": {
+ "spdx-expression-parse": "^3.0.0",
+ "spdx-license-ids": "^3.0.0"
+ }
+ },
+ "spdx-exceptions": {
+ "version": "2.3.0",
+ "resolved": "https://registry.npmjs.org/spdx-exceptions/-/spdx-exceptions-2.3.0.tgz",
+ "integrity": "sha512-/tTrYOC7PPI1nUAgx34hUpqXuyJG+DTHJTnIULG4rDygi4xu/tfgmq1e1cIRwRzwZgo4NLySi+ricLkZkw4i5A=="
+ },
+ "spdx-expression-parse": {
+ "version": "3.0.1",
+ "resolved": "https://registry.npmjs.org/spdx-expression-parse/-/spdx-expression-parse-3.0.1.tgz",
+ "integrity": "sha512-cbqHunsQWnJNE6KhVSMsMeH5H/L9EpymbzqTQ3uLwNCLZ1Q481oWaofqH7nO6V07xlXwY6PhQdQ2IedWx/ZK4Q==",
+ "requires": {
+ "spdx-exceptions": "^2.1.0",
+ "spdx-license-ids": "^3.0.0"
+ }
+ },
+ "spdx-license-ids": {
+ "version": "3.0.9",
+ "resolved": "https://registry.npmjs.org/spdx-license-ids/-/spdx-license-ids-3.0.9.tgz",
+ "integrity": "sha512-Ki212dKK4ogX+xDo4CtOZBVIwhsKBEfsEEcwmJfLQzirgc2jIWdzg40Unxz/HzEUqM1WFzVlQSMF9kZZ2HboLQ=="
+ },
+ "sprintf-js": {
+ "version": "1.0.3",
+ "resolved": "https://registry.npmjs.org/sprintf-js/-/sprintf-js-1.0.3.tgz",
+ "integrity": "sha1-BOaSb2YolTVPPdAVIDYzuFcpfiw="
+ },
+ "string.prototype.trimend": {
+ "version": "1.0.4",
+ "resolved": "https://registry.npmjs.org/string.prototype.trimend/-/string.prototype.trimend-1.0.4.tgz",
+ "integrity": "sha512-y9xCjw1P23Awk8EvTpcyL2NIr1j7wJ39f+k6lvRnSMz+mz9CGz9NYPelDk42kOz6+ql8xjfK8oYzy3jAP5QU5A==",
+ "requires": {
+ "call-bind": "^1.0.2",
+ "define-properties": "^1.1.3"
+ }
+ },
+ "string.prototype.trimstart": {
+ "version": "1.0.4",
+ "resolved": "https://registry.npmjs.org/string.prototype.trimstart/-/string.prototype.trimstart-1.0.4.tgz",
+ "integrity": "sha512-jh6e984OBfvxS50tdY2nRZnoC5/mLFKOREQfw8t5yytkoUsJRNxvI/E39qu1sD0OtWI3OC0XgKSmcWwziwYuZw==",
+ "requires": {
+ "call-bind": "^1.0.2",
+ "define-properties": "^1.1.3"
+ }
+ },
+ "ts-node": {
+ "version": "7.0.1",
+ "resolved": "https://registry.npmjs.org/ts-node/-/ts-node-7.0.1.tgz",
+ "integrity": "sha512-BVwVbPJRspzNh2yfslyT1PSbl5uIk03EZlb493RKHN4qej/D06n1cEhjlOJG69oFsE7OT8XjpTUcYf6pKTLMhw==",
+ "requires": {
+ "arrify": "^1.0.0",
+ "buffer-from": "^1.1.0",
+ "diff": "^3.1.0",
+ "make-error": "^1.1.1",
+ "minimist": "^1.2.0",
+ "mkdirp": "^0.5.1",
+ "source-map-support": "^0.5.6",
+ "yn": "^2.0.0"
+ },
+ "dependencies": {
+ "source-map": {
+ "version": "0.6.1",
+ "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz",
+ "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g=="
+ },
+ "source-map-support": {
+ "version": "0.5.19",
+ "resolved": "https://registry.npmjs.org/source-map-support/-/source-map-support-0.5.19.tgz",
+ "integrity": "sha512-Wonm7zOCIJzBGQdB+thsPar0kYuCIzYvxZwlBa87yi/Mdjv7Tip2cyVbLj5o0cFPN4EVkuTwb3GDDyUx2DGnGw==",
+ "requires": {
+ "buffer-from": "^1.0.0",
+ "source-map": "^0.6.0"
+ }
+ }
+ }
+ },
+ "typescript": {
+ "version": "3.7.7",
+ "resolved": "https://registry.npmjs.org/typescript/-/typescript-3.7.7.tgz",
+ "integrity": "sha512-MmQdgo/XenfZPvVLtKZOq9jQQvzaUAUpcKW8Z43x9B2fOm4S5g//tPtMweZUIP+SoBqrVPEIm+dJeQ9dfO0QdA=="
+ },
+ "unbox-primitive": {
+ "version": "1.0.1",
+ "resolved": "https://registry.npmjs.org/unbox-primitive/-/unbox-primitive-1.0.1.tgz",
+ "integrity": "sha512-tZU/3NqK3dA5gpE1KtyiJUrEB0lxnGkMFHptJ7q6ewdZ8s12QrODwNbhIJStmJkd1QDXa1NRA8aF2A1zk/Ypyw==",
+ "requires": {
+ "function-bind": "^1.1.1",
+ "has-bigints": "^1.0.1",
+ "has-symbols": "^1.0.2",
+ "which-boxed-primitive": "^1.0.2"
+ }
+ },
+ "upath": {
+ "version": "1.2.0",
+ "resolved": "https://registry.npmjs.org/upath/-/upath-1.2.0.tgz",
+ "integrity": "sha512-aZwGpamFO61g3OlfT7OQCHqhGnW43ieH9WZeP7QxN/G/jS4jfqUkZxoryvJgVPEcrl5NL/ggHsSmLMHuH64Lhg=="
+ },
+ "url": {
+ "version": "0.10.3",
+ "resolved": "https://registry.npmjs.org/url/-/url-0.10.3.tgz",
+ "integrity": "sha1-Ah5NnHcF8hu/N9A861h2dAJ3TGQ=",
+ "requires": {
+ "punycode": "1.3.2",
+ "querystring": "0.2.0"
+ }
+ },
+ "util-promisify": {
+ "version": "2.1.0",
+ "resolved": "https://registry.npmjs.org/util-promisify/-/util-promisify-2.1.0.tgz",
+ "integrity": "sha1-PCI2R2xNMsX/PEcAKt18E7moKlM=",
+ "requires": {
+ "object.getownpropertydescriptors": "^2.0.3"
+ }
+ },
+ "uuid": {
+ "version": "3.3.2",
+ "resolved": "https://registry.npmjs.org/uuid/-/uuid-3.3.2.tgz",
+ "integrity": "sha512-yXJmeNaw3DnnKAOKJE51sL/ZaYfWJRl1pK9dr19YFCu0ObS231AB1/LbqTKRAQ5kw8A90rA6fr4riOUpTZvQZA=="
+ },
+ "validate-npm-package-license": {
+ "version": "3.0.4",
+ "resolved": "https://registry.npmjs.org/validate-npm-package-license/-/validate-npm-package-license-3.0.4.tgz",
+ "integrity": "sha512-DpKm2Ui/xN7/HQKCtpZxoRWBhZ9Z0kqtygG8XCgNQ8ZlDnxuQmWhj566j8fN4Cu3/JmbhsDo7fcAJq4s9h27Ew==",
+ "requires": {
+ "spdx-correct": "^3.0.0",
+ "spdx-expression-parse": "^3.0.0"
+ }
+ },
+ "which-boxed-primitive": {
+ "version": "1.0.2",
+ "resolved": "https://registry.npmjs.org/which-boxed-primitive/-/which-boxed-primitive-1.0.2.tgz",
+ "integrity": "sha512-bwZdv0AKLpplFY2KZRX6TvyuN7ojjr7lwkg6ml0roIy9YeuSr7JS372qlNW18UQYzgYK9ziGcerWqZOmEn9VNg==",
+ "requires": {
+ "is-bigint": "^1.0.1",
+ "is-boolean-object": "^1.1.0",
+ "is-number-object": "^1.0.4",
+ "is-string": "^1.0.5",
+ "is-symbol": "^1.0.3"
+ }
+ },
+ "wrappy": {
+ "version": "1.0.2",
+ "resolved": "https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz",
+ "integrity": "sha1-tSQ9jz7BqjXxNkYFvA0QNuMKtp8="
+ },
+ "xml2js": {
+ "version": "0.4.19",
+ "resolved": "https://registry.npmjs.org/xml2js/-/xml2js-0.4.19.tgz",
+ "integrity": "sha512-esZnJZJOiJR9wWKMyuvSE1y6Dq5LCuJanqhxslH2bxM6duahNZ+HMpCLhBQGZkbX6xRf8x1Y2eJlgt2q3qo49Q==",
+ "requires": {
+ "sax": ">=0.6.0",
+ "xmlbuilder": "~9.0.1"
+ }
+ },
+ "xmlbuilder": {
+ "version": "9.0.7",
+ "resolved": "https://registry.npmjs.org/xmlbuilder/-/xmlbuilder-9.0.7.tgz",
+ "integrity": "sha1-Ey7mPS7FVlxVfiD0wi35rKaGsQ0="
+ },
+ "yn": {
+ "version": "2.0.0",
+ "resolved": "https://registry.npmjs.org/yn/-/yn-2.0.0.tgz",
+ "integrity": "sha1-5a2ryKz0CPY4X8dklWhMiOavaJo="
+ }
+ }
+}
diff --git a/examples/aws_elastigroup/ts/package.json b/examples/aws_elastigroup/ts/package.json
index d8122daf..c09c596b 100644
--- a/examples/aws_elastigroup/ts/package.json
+++ b/examples/aws_elastigroup/ts/package.json
@@ -1,11 +1,11 @@
{
"name": "typescript",
"devDependencies": {
- "@types/node": "^8.0.0"
+ "@types/node": "^10.0.0"
},
"dependencies": {
- "@pulumi/aws": "^4.0.0-alpha.0",
- "@pulumi/pulumi": "^3.0.0-alpha.0",
- "@pulumi/random": "^4.0.0-alpha.0"
+ "@pulumi/aws": "^4.0.0",
+ "@pulumi/pulumi": "^3.0.0",
+ "@pulumi/random": "^4.0.0"
}
}
diff --git a/provider/cmd/pulumi-resource-spotinst/schema.json b/provider/cmd/pulumi-resource-spotinst/schema.json
index aff6f01e..0d464880 100644
--- a/provider/cmd/pulumi-resource-spotinst/schema.json
+++ b/provider/cmd/pulumi-resource-spotinst/schema.json
@@ -2531,6 +2531,33 @@
},
"type": "object"
},
+ "spotinst:aws/ElastigroupStatefulInstanceAction:ElastigroupStatefulInstanceAction": {
+ "properties": {
+ "statefulInstanceId": {
+ "type": "string",
+ "description": "String, Stateful Instance ID on which the action should be performed.\n",
+ "language": {
+ "python": {
+ "mapCase": false
+ }
+ }
+ },
+ "type": {
+ "type": "string",
+ "description": "String, Action type. Supported action types: `pause`, `resume`, `recycle`, `deallocate`.\n",
+ "language": {
+ "python": {
+ "mapCase": false
+ }
+ }
+ }
+ },
+ "type": "object",
+ "required": [
+ "statefulInstanceId",
+ "type"
+ ]
+ },
"spotinst:aws/ElastigroupTag:ElastigroupTag": {
"properties": {
"key": {
@@ -4794,6 +4821,23 @@
"sizePerResourceUnit"
]
},
+ "spotinst:aws/OceanLaunchSpecCreateOptions:OceanLaunchSpecCreateOptions": {
+ "properties": {
+ "initialNodes": {
+ "type": "integer",
+ "description": "When set to an integer greater than 0, a corresponding amount of nodes will be launched from the created virtual node group.\n",
+ "language": {
+ "python": {
+ "mapCase": false
+ }
+ }
+ }
+ },
+ "type": "object",
+ "required": [
+ "initialNodes"
+ ]
+ },
"spotinst:aws/OceanLaunchSpecElasticIpPool:OceanLaunchSpecElasticIpPool": {
"properties": {
"tagSelector": {
@@ -9448,6 +9492,20 @@
"value"
]
},
+ "spotinst:gke/OceanLaunchSpecStrategy:OceanLaunchSpecStrategy": {
+ "properties": {
+ "preemptiblePercentage": {
+ "type": "integer",
+ "description": "Defines the desired preemptible percentage for this launch specification.\n",
+ "language": {
+ "python": {
+ "mapCase": false
+ }
+ }
+ }
+ },
+ "type": "object"
+ },
"spotinst:gke/OceanLaunchSpecTaint:OceanLaunchSpecTaint": {
"properties": {
"effect": {
@@ -10684,6 +10742,12 @@
"statefulDeallocation": {
"$ref": "#/types/spotinst:aws/ElastigroupStatefulDeallocation:ElastigroupStatefulDeallocation"
},
+ "statefulInstanceActions": {
+ "type": "array",
+ "items": {
+ "$ref": "#/types/spotinst:aws/ElastigroupStatefulInstanceAction:ElastigroupStatefulInstanceAction"
+ }
+ },
"subnetIds": {
"type": "array",
"items": {
@@ -11049,6 +11113,12 @@
"statefulDeallocation": {
"$ref": "#/types/spotinst:aws/ElastigroupStatefulDeallocation:ElastigroupStatefulDeallocation"
},
+ "statefulInstanceActions": {
+ "type": "array",
+ "items": {
+ "$ref": "#/types/spotinst:aws/ElastigroupStatefulInstanceAction:ElastigroupStatefulInstanceAction"
+ }
+ },
"subnetIds": {
"type": "array",
"items": {
@@ -11410,6 +11480,12 @@
"statefulDeallocation": {
"$ref": "#/types/spotinst:aws/ElastigroupStatefulDeallocation:ElastigroupStatefulDeallocation"
},
+ "statefulInstanceActions": {
+ "type": "array",
+ "items": {
+ "$ref": "#/types/spotinst:aws/ElastigroupStatefulInstanceAction:ElastigroupStatefulInstanceAction"
+ }
+ },
"subnetIds": {
"type": "array",
"items": {
@@ -11458,7 +11534,7 @@
}
},
"spotinst:aws/managedInstance:ManagedInstance": {
- "description": "Provides a Spotinst AWS ManagedInstance 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\n// Create a Manged Instance\nconst default_managed_instance = new spotinst.aws.ManagedInstance(\"default-managed-instance\", {\n autoHealing: true,\n blockDeviceMappings: [{\n deviceName: \"/dev/xvdcz\",\n ebs: {\n deleteOnTermination: true,\n iops: 100,\n throughput: 125,\n volumeSize: 50,\n volumeType: \"gp3\",\n },\n }],\n blockDevicesMode: \"reattach\",\n cpuCredits: \"standard\",\n description: \"created by Pulumi\",\n drainingTimeout: 120,\n ebsOptimized: true,\n elasticIp: \"ip\",\n enableMonitoring: true,\n fallbackToOndemand: false,\n gracePeriod: 180,\n healthCheckType: \"EC2\",\n iamInstanceProfile: \"iam-profile\",\n imageId: \"ami-1234\",\n instanceTypes: [\n \"t1.micro\",\n \"t3.medium\",\n \"t3.large\",\n \"t2.medium\",\n \"t2.large\",\n \"z1d.large\",\n ],\n keyPair: \"labs-oregon\",\n lifeCycle: \"on_demand\",\n optimizationWindows: [\"Mon:03:00-Wed:02:20\"],\n orientation: \"balanced\",\n persistBlockDevices: true,\n persistPrivateIp: false,\n persistRootDevice: true,\n placementTenancy: \"default\",\n preferredType: \"t1.micro\",\n privateIp: \"ip\",\n product: \"Linux/UNIX\",\n region: \"us-west-2\",\n revertToSpot: {\n performAt: \"always\",\n },\n securityGroupIds: [\"sg-234\"],\n shutdownScript: \"managed instance bye world\",\n subnetIds: [\"subnet-123\"],\n tags: [\n {\n key: \"explicit1\",\n value: \"value1\",\n },\n {\n key: \"explicit2\",\n value: \"value2\",\n },\n ],\n unhealthyDuration: 60,\n userData: \"managed instance hello world\",\n utilizeReservedInstances: true,\n vpcId: \"vpc-123\",\n});\n```\n{{% /example %}}\n{{% /examples %}}",
+ "description": "Provides a Spotinst AWS ManagedInstance 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\n// Create a Manged Instance\nconst default_managed_instance = new spotinst.aws.ManagedInstance(\"default-managed-instance\", {\n autoHealing: true,\n blockDeviceMappings: [{\n deviceName: \"/dev/xvdcz\",\n ebs: {\n deleteOnTermination: true,\n iops: 100,\n throughput: 125,\n volumeSize: 50,\n volumeType: \"gp3\",\n },\n }],\n blockDevicesMode: \"reattach\",\n cpuCredits: \"standard\",\n description: \"created by Pulumi\",\n drainingTimeout: 120,\n ebsOptimized: true,\n elasticIp: \"ip\",\n enableMonitoring: true,\n fallbackToOndemand: false,\n gracePeriod: 180,\n healthCheckType: \"EC2\",\n iamInstanceProfile: \"iam-profile\",\n imageId: \"ami-1234\",\n instanceTypes: [\n \"t1.micro\",\n \"t3.medium\",\n \"t3.large\",\n \"t2.medium\",\n \"t2.large\",\n \"z1d.large\",\n ],\n keyPair: \"labs-oregon\",\n lifeCycle: \"on_demand\",\n minimumInstanceLifetime: 1,\n optimizationWindows: [\"Mon:03:00-Wed:02:20\"],\n orientation: \"balanced\",\n persistBlockDevices: true,\n persistPrivateIp: false,\n persistRootDevice: true,\n placementTenancy: \"default\",\n preferredType: \"t1.micro\",\n privateIp: \"ip\",\n product: \"Linux/UNIX\",\n region: \"us-west-2\",\n revertToSpot: {\n performAt: \"always\",\n },\n securityGroupIds: [\"sg-234\"],\n shutdownScript: \"managed instance bye world\",\n subnetIds: [\"subnet-123\"],\n tags: [\n {\n key: \"explicit1\",\n value: \"value1\",\n },\n {\n key: \"explicit2\",\n value: \"value2\",\n },\n ],\n unhealthyDuration: 60,\n userData: \"managed instance hello world\",\n utilizeReservedInstances: true,\n vpcId: \"vpc-123\",\n});\n```\n{{% /example %}}\n{{% /examples %}}",
"properties": {
"autoHealing": {
"type": "boolean",
@@ -11544,6 +11620,9 @@
},
"description": "List of load balancers configs.\n"
},
+ "minimumInstanceLifetime": {
+ "type": "integer"
+ },
"name": {
"type": "string",
"description": "The record set name.\n"
@@ -11742,6 +11821,9 @@
},
"description": "List of load balancers configs.\n"
},
+ "minimumInstanceLifetime": {
+ "type": "integer"
+ },
"name": {
"type": "string",
"description": "The record set name.\n"
@@ -11940,6 +12022,9 @@
},
"description": "List of load balancers configs.\n"
},
+ "minimumInstanceLifetime": {
+ "type": "integer"
+ },
"name": {
"type": "string",
"description": "The record set name.\n"
@@ -13373,7 +13458,7 @@
}
},
"spotinst:aws/oceanLaunchSpec:OceanLaunchSpec": {
- "description": "Manages a Spotinst Ocean AWS [Virtual Node Group](https://docs.spot.io/ocean/features/launch-specifications) 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.aws.OceanLaunchSpec(\"example\", {\n associatePublicIpAddress: true,\n autoscaleHeadrooms: [{\n cpuPerNit: 1000,\n gpuPerUnit: 0,\n memoryPerUnit: 2048,\n numOfUnits: 5,\n }],\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 elasticIpPools: [{\n tagSelector: {\n tagKey: \"key\",\n tagValue: \"value\",\n },\n }],\n iamInstanceProfile: \"iam-profile\",\n imageId: \"ami-123456\",\n instanceTypes: [\n \"m4.large\",\n \"m4.xlarge\",\n \"m4.2xlarge\",\n \"m4.4xlarge\",\n ],\n labels: [{\n key: \"key1\",\n value: \"value1\",\n }],\n oceanId: \"o-123456\",\n resourceLimits: [{\n maxInstanceCount: 4,\n }],\n restrictScaleDown: true,\n rootVolumeSize: 30,\n securityGroups: [\"sg-987654321\"],\n strategies: [{\n spotPercentage: 70,\n }],\n subnetIds: [\"subnet-1234\"],\n tags: [{\n key: \"Env\",\n value: \"production\",\n }],\n taints: [{\n effect: \"NoExecute\",\n key: \"key1\",\n value: \"value1\",\n }],\n userData: \"echo Hello, world!\",\n});\n```\n```python\nimport pulumi\nimport pulumi_spotinst as spotinst\n\nexample = spotinst.aws.OceanLaunchSpec(\"example\",\n associate_public_ip_address=True,\n autoscale_headrooms=[spotinst.aws.OceanLaunchSpecAutoscaleHeadroomArgs(\n cpu_per_nit=1000,\n gpu_per_unit=0,\n memory_per_unit=2048,\n num_of_units=5,\n )],\n block_device_mappings=[spotinst.aws.OceanLaunchSpecBlockDeviceMappingArgs(\n device_name=\"/dev/xvda1\",\n ebs=spotinst.aws.OceanLaunchSpecBlockDeviceMappingEbsArgs(\n delete_on_termination=True,\n dynamic_volume_size=spotinst.aws.OceanLaunchSpecBlockDeviceMappingEbsDynamicVolumeSizeArgs(\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 elastic_ip_pools=[spotinst.aws.OceanLaunchSpecElasticIpPoolArgs(\n tag_selector=spotinst.aws.OceanLaunchSpecElasticIpPoolTagSelectorArgs(\n tag_key=\"key\",\n tag_value=\"value\",\n ),\n )],\n iam_instance_profile=\"iam-profile\",\n image_id=\"ami-123456\",\n instance_types=[\n \"m4.large\",\n \"m4.xlarge\",\n \"m4.2xlarge\",\n \"m4.4xlarge\",\n ],\n labels=[spotinst.aws.OceanLaunchSpecLabelArgs(\n key=\"key1\",\n value=\"value1\",\n )],\n ocean_id=\"o-123456\",\n resource_limits=[spotinst.aws.OceanLaunchSpecResourceLimitArgs(\n max_instance_count=4,\n )],\n restrict_scale_down=True,\n root_volume_size=30,\n security_groups=[\"sg-987654321\"],\n strategies=[spotinst.aws.OceanLaunchSpecStrategyArgs(\n spot_percentage=70,\n )],\n subnet_ids=[\"subnet-1234\"],\n tags=[spotinst.aws.OceanLaunchSpecTagArgs(\n key=\"Env\",\n value=\"production\",\n )],\n taints=[spotinst.aws.OceanLaunchSpecTaintArgs(\n effect=\"NoExecute\",\n key=\"key1\",\n value=\"value1\",\n )],\n user_data=\"echo Hello, world!\")\n```\n```csharp\nusing Pulumi;\nusing SpotInst = Pulumi.SpotInst;\n\nclass MyStack : Stack\n{\n public MyStack()\n {\n var example = new SpotInst.Aws.OceanLaunchSpec(\"example\", new SpotInst.Aws.OceanLaunchSpecArgs\n {\n AssociatePublicIpAddress = true,\n AutoscaleHeadrooms = \n {\n new SpotInst.Aws.Inputs.OceanLaunchSpecAutoscaleHeadroomArgs\n {\n CpuPerNit = 1000,\n GpuPerUnit = 0,\n MemoryPerUnit = 2048,\n NumOfUnits = 5,\n },\n },\n BlockDeviceMappings = \n {\n new SpotInst.Aws.Inputs.OceanLaunchSpecBlockDeviceMappingArgs\n {\n DeviceName = \"/dev/xvda1\",\n Ebs = new SpotInst.Aws.Inputs.OceanLaunchSpecBlockDeviceMappingEbsArgs\n {\n DeleteOnTermination = true,\n DynamicVolumeSize = new SpotInst.Aws.Inputs.OceanLaunchSpecBlockDeviceMappingEbsDynamicVolumeSizeArgs\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 ElasticIpPools = \n {\n new SpotInst.Aws.Inputs.OceanLaunchSpecElasticIpPoolArgs\n {\n TagSelector = new SpotInst.Aws.Inputs.OceanLaunchSpecElasticIpPoolTagSelectorArgs\n {\n TagKey = \"key\",\n TagValue = \"value\",\n },\n },\n },\n IamInstanceProfile = \"iam-profile\",\n ImageId = \"ami-123456\",\n InstanceTypes = \n {\n \"m4.large\",\n \"m4.xlarge\",\n \"m4.2xlarge\",\n \"m4.4xlarge\",\n },\n Labels = \n {\n new SpotInst.Aws.Inputs.OceanLaunchSpecLabelArgs\n {\n Key = \"key1\",\n Value = \"value1\",\n },\n },\n OceanId = \"o-123456\",\n ResourceLimits = \n {\n new SpotInst.Aws.Inputs.OceanLaunchSpecResourceLimitArgs\n {\n MaxInstanceCount = 4,\n },\n },\n RestrictScaleDown = true,\n RootVolumeSize = 30,\n SecurityGroups = \n {\n \"sg-987654321\",\n },\n Strategies = \n {\n new SpotInst.Aws.Inputs.OceanLaunchSpecStrategyArgs\n {\n SpotPercentage = 70,\n },\n },\n SubnetIds = \n {\n \"subnet-1234\",\n },\n Tags = \n {\n new SpotInst.Aws.Inputs.OceanLaunchSpecTagArgs\n {\n Key = \"Env\",\n Value = \"production\",\n },\n },\n Taints = \n {\n new SpotInst.Aws.Inputs.OceanLaunchSpecTaintArgs\n {\n Effect = \"NoExecute\",\n Key = \"key1\",\n Value = \"value1\",\n },\n },\n UserData = \"echo Hello, world!\",\n });\n }\n\n}\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-spotinst/sdk/v3/go/spotinst/aws\"\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 := aws.NewOceanLaunchSpec(ctx, \"example\", \u0026aws.OceanLaunchSpecArgs{\n\t\t\tAssociatePublicIpAddress: pulumi.Bool(true),\n\t\t\tAutoscaleHeadrooms: aws.OceanLaunchSpecAutoscaleHeadroomArray{\n\t\t\t\t\u0026aws.OceanLaunchSpecAutoscaleHeadroomArgs{\n\t\t\t\t\tCpuPerNit: pulumi.Float64(1000),\n\t\t\t\t\tGpuPerUnit: pulumi.Int(0),\n\t\t\t\t\tMemoryPerUnit: pulumi.Int(2048),\n\t\t\t\t\tNumOfUnits: pulumi.Int(5),\n\t\t\t\t},\n\t\t\t},\n\t\t\tBlockDeviceMappings: aws.OceanLaunchSpecBlockDeviceMappingArray{\n\t\t\t\t\u0026aws.OceanLaunchSpecBlockDeviceMappingArgs{\n\t\t\t\t\tDeviceName: pulumi.String(\"/dev/xvda1\"),\n\t\t\t\t\tEbs: \u0026aws.OceanLaunchSpecBlockDeviceMappingEbsArgs{\n\t\t\t\t\t\tDeleteOnTermination: pulumi.Bool(true),\n\t\t\t\t\t\tDynamicVolumeSize: \u0026aws.OceanLaunchSpecBlockDeviceMappingEbsDynamicVolumeSizeArgs{\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\tElasticIpPools: aws.OceanLaunchSpecElasticIpPoolArray{\n\t\t\t\t\u0026aws.OceanLaunchSpecElasticIpPoolArgs{\n\t\t\t\t\tTagSelector: \u0026aws.OceanLaunchSpecElasticIpPoolTagSelectorArgs{\n\t\t\t\t\t\tTagKey: pulumi.String(\"key\"),\n\t\t\t\t\t\tTagValue: pulumi.String(\"value\"),\n\t\t\t\t\t},\n\t\t\t\t},\n\t\t\t},\n\t\t\tIamInstanceProfile: pulumi.String(\"iam-profile\"),\n\t\t\tImageId: pulumi.String(\"ami-123456\"),\n\t\t\tInstanceTypes: pulumi.StringArray{\n\t\t\t\tpulumi.String(\"m4.large\"),\n\t\t\t\tpulumi.String(\"m4.xlarge\"),\n\t\t\t\tpulumi.String(\"m4.2xlarge\"),\n\t\t\t\tpulumi.String(\"m4.4xlarge\"),\n\t\t\t},\n\t\t\tLabels: aws.OceanLaunchSpecLabelArray{\n\t\t\t\t\u0026aws.OceanLaunchSpecLabelArgs{\n\t\t\t\t\tKey: pulumi.String(\"key1\"),\n\t\t\t\t\tValue: pulumi.String(\"value1\"),\n\t\t\t\t},\n\t\t\t},\n\t\t\tOceanId: pulumi.String(\"o-123456\"),\n\t\t\tResourceLimits: aws.OceanLaunchSpecResourceLimitArray{\n\t\t\t\t\u0026aws.OceanLaunchSpecResourceLimitArgs{\n\t\t\t\t\tMaxInstanceCount: pulumi.Int(4),\n\t\t\t\t},\n\t\t\t},\n\t\t\tRestrictScaleDown: pulumi.Bool(true),\n\t\t\tRootVolumeSize: pulumi.Int(30),\n\t\t\tSecurityGroups: pulumi.StringArray{\n\t\t\t\tpulumi.String(\"sg-987654321\"),\n\t\t\t},\n\t\t\tStrategies: aws.OceanLaunchSpecStrategyArray{\n\t\t\t\t\u0026aws.OceanLaunchSpecStrategyArgs{\n\t\t\t\t\tSpotPercentage: pulumi.Int(70),\n\t\t\t\t},\n\t\t\t},\n\t\t\tSubnetIds: pulumi.StringArray{\n\t\t\t\tpulumi.String(\"subnet-1234\"),\n\t\t\t},\n\t\t\tTags: aws.OceanLaunchSpecTagArray{\n\t\t\t\t\u0026aws.OceanLaunchSpecTagArgs{\n\t\t\t\t\tKey: pulumi.String(\"Env\"),\n\t\t\t\t\tValue: pulumi.String(\"production\"),\n\t\t\t\t},\n\t\t\t},\n\t\t\tTaints: aws.OceanLaunchSpecTaintArray{\n\t\t\t\t\u0026aws.OceanLaunchSpecTaintArgs{\n\t\t\t\t\tEffect: pulumi.String(\"NoExecute\"),\n\t\t\t\t\tKey: pulumi.String(\"key1\"),\n\t\t\t\t\tValue: pulumi.String(\"value1\"),\n\t\t\t\t},\n\t\t\t},\n\t\t\tUserData: pulumi.String(\"echo Hello, world!\"),\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```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\n\nexport const oceanLaunchspecId = spotinst_ocean_aws_launch_spec.example.id;\n```\n```python\nimport pulumi\n\npulumi.export(\"oceanLaunchspecId\", spotinst_ocean_aws_launch_spec[\"example\"][\"id\"])\n```\n```csharp\nusing Pulumi;\n\nclass MyStack : Stack\n{\n public MyStack()\n {\n this.OceanLaunchspecId = spotinst_ocean_aws_launch_spec.Example.Id;\n }\n\n [Output(\"oceanLaunchspecId\")]\n public Output\u003cstring\u003e OceanLaunchspecId { 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(\"oceanLaunchspecId\", spotinst_ocean_aws_launch_spec.Example.Id)\n\t\treturn nil\n\t})\n}\n```\n{{% /example %}}\n{{% /examples %}}",
+ "description": "Manages a Spotinst Ocean AWS [Virtual Node Group](https://docs.spot.io/ocean/features/launch-specifications) 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.aws.OceanLaunchSpec(\"example\", {\n associatePublicIpAddress: true,\n autoscaleHeadrooms: [{\n cpuPerNit: 1000,\n gpuPerUnit: 0,\n memoryPerUnit: 2048,\n numOfUnits: 5,\n }],\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 createOptions: {\n initialNodes: 1,\n },\n elasticIpPools: [{\n tagSelector: {\n tagKey: \"key\",\n tagValue: \"value\",\n },\n }],\n iamInstanceProfile: \"iam-profile\",\n imageId: \"ami-123456\",\n instanceTypes: [\n \"m4.large\",\n \"m4.xlarge\",\n \"m4.2xlarge\",\n \"m4.4xlarge\",\n ],\n labels: [{\n key: \"key1\",\n value: \"value1\",\n }],\n oceanId: \"o-123456\",\n resourceLimits: [{\n maxInstanceCount: 4,\n }],\n restrictScaleDown: true,\n rootVolumeSize: 30,\n securityGroups: [\"sg-987654321\"],\n strategies: [{\n spotPercentage: 70,\n }],\n subnetIds: [\"subnet-1234\"],\n tags: [{\n key: \"Env\",\n value: \"production\",\n }],\n taints: [{\n effect: \"NoExecute\",\n key: \"key1\",\n value: \"value1\",\n }],\n userData: \"echo Hello, world!\",\n});\n```\n```python\nimport pulumi\nimport pulumi_spotinst as spotinst\n\nexample = spotinst.aws.OceanLaunchSpec(\"example\",\n associate_public_ip_address=True,\n autoscale_headrooms=[spotinst.aws.OceanLaunchSpecAutoscaleHeadroomArgs(\n cpu_per_nit=1000,\n gpu_per_unit=0,\n memory_per_unit=2048,\n num_of_units=5,\n )],\n block_device_mappings=[spotinst.aws.OceanLaunchSpecBlockDeviceMappingArgs(\n device_name=\"/dev/xvda1\",\n ebs=spotinst.aws.OceanLaunchSpecBlockDeviceMappingEbsArgs(\n delete_on_termination=True,\n dynamic_volume_size=spotinst.aws.OceanLaunchSpecBlockDeviceMappingEbsDynamicVolumeSizeArgs(\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 create_options=spotinst.aws.OceanLaunchSpecCreateOptionsArgs(\n initial_nodes=1,\n ),\n elastic_ip_pools=[spotinst.aws.OceanLaunchSpecElasticIpPoolArgs(\n tag_selector=spotinst.aws.OceanLaunchSpecElasticIpPoolTagSelectorArgs(\n tag_key=\"key\",\n tag_value=\"value\",\n ),\n )],\n iam_instance_profile=\"iam-profile\",\n image_id=\"ami-123456\",\n instance_types=[\n \"m4.large\",\n \"m4.xlarge\",\n \"m4.2xlarge\",\n \"m4.4xlarge\",\n ],\n labels=[spotinst.aws.OceanLaunchSpecLabelArgs(\n key=\"key1\",\n value=\"value1\",\n )],\n ocean_id=\"o-123456\",\n resource_limits=[spotinst.aws.OceanLaunchSpecResourceLimitArgs(\n max_instance_count=4,\n )],\n restrict_scale_down=True,\n root_volume_size=30,\n security_groups=[\"sg-987654321\"],\n strategies=[spotinst.aws.OceanLaunchSpecStrategyArgs(\n spot_percentage=70,\n )],\n subnet_ids=[\"subnet-1234\"],\n tags=[spotinst.aws.OceanLaunchSpecTagArgs(\n key=\"Env\",\n value=\"production\",\n )],\n taints=[spotinst.aws.OceanLaunchSpecTaintArgs(\n effect=\"NoExecute\",\n key=\"key1\",\n value=\"value1\",\n )],\n user_data=\"echo Hello, world!\")\n```\n```csharp\nusing Pulumi;\nusing SpotInst = Pulumi.SpotInst;\n\nclass MyStack : Stack\n{\n public MyStack()\n {\n var example = new SpotInst.Aws.OceanLaunchSpec(\"example\", new SpotInst.Aws.OceanLaunchSpecArgs\n {\n AssociatePublicIpAddress = true,\n AutoscaleHeadrooms = \n {\n new SpotInst.Aws.Inputs.OceanLaunchSpecAutoscaleHeadroomArgs\n {\n CpuPerNit = 1000,\n GpuPerUnit = 0,\n MemoryPerUnit = 2048,\n NumOfUnits = 5,\n },\n },\n BlockDeviceMappings = \n {\n new SpotInst.Aws.Inputs.OceanLaunchSpecBlockDeviceMappingArgs\n {\n DeviceName = \"/dev/xvda1\",\n Ebs = new SpotInst.Aws.Inputs.OceanLaunchSpecBlockDeviceMappingEbsArgs\n {\n DeleteOnTermination = true,\n DynamicVolumeSize = new SpotInst.Aws.Inputs.OceanLaunchSpecBlockDeviceMappingEbsDynamicVolumeSizeArgs\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 CreateOptions = new SpotInst.Aws.Inputs.OceanLaunchSpecCreateOptionsArgs\n {\n InitialNodes = 1,\n },\n ElasticIpPools = \n {\n new SpotInst.Aws.Inputs.OceanLaunchSpecElasticIpPoolArgs\n {\n TagSelector = new SpotInst.Aws.Inputs.OceanLaunchSpecElasticIpPoolTagSelectorArgs\n {\n TagKey = \"key\",\n TagValue = \"value\",\n },\n },\n },\n IamInstanceProfile = \"iam-profile\",\n ImageId = \"ami-123456\",\n InstanceTypes = \n {\n \"m4.large\",\n \"m4.xlarge\",\n \"m4.2xlarge\",\n \"m4.4xlarge\",\n },\n Labels = \n {\n new SpotInst.Aws.Inputs.OceanLaunchSpecLabelArgs\n {\n Key = \"key1\",\n Value = \"value1\",\n },\n },\n OceanId = \"o-123456\",\n ResourceLimits = \n {\n new SpotInst.Aws.Inputs.OceanLaunchSpecResourceLimitArgs\n {\n MaxInstanceCount = 4,\n },\n },\n RestrictScaleDown = true,\n RootVolumeSize = 30,\n SecurityGroups = \n {\n \"sg-987654321\",\n },\n Strategies = \n {\n new SpotInst.Aws.Inputs.OceanLaunchSpecStrategyArgs\n {\n SpotPercentage = 70,\n },\n },\n SubnetIds = \n {\n \"subnet-1234\",\n },\n Tags = \n {\n new SpotInst.Aws.Inputs.OceanLaunchSpecTagArgs\n {\n Key = \"Env\",\n Value = \"production\",\n },\n },\n Taints = \n {\n new SpotInst.Aws.Inputs.OceanLaunchSpecTaintArgs\n {\n Effect = \"NoExecute\",\n Key = \"key1\",\n Value = \"value1\",\n },\n },\n UserData = \"echo Hello, world!\",\n });\n }\n\n}\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-spotinst/sdk/v3/go/spotinst/aws\"\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 := aws.NewOceanLaunchSpec(ctx, \"example\", \u0026aws.OceanLaunchSpecArgs{\n\t\t\tAssociatePublicIpAddress: pulumi.Bool(true),\n\t\t\tAutoscaleHeadrooms: aws.OceanLaunchSpecAutoscaleHeadroomArray{\n\t\t\t\t\u0026aws.OceanLaunchSpecAutoscaleHeadroomArgs{\n\t\t\t\t\tCpuPerNit: pulumi.Float64(1000),\n\t\t\t\t\tGpuPerUnit: pulumi.Int(0),\n\t\t\t\t\tMemoryPerUnit: pulumi.Int(2048),\n\t\t\t\t\tNumOfUnits: pulumi.Int(5),\n\t\t\t\t},\n\t\t\t},\n\t\t\tBlockDeviceMappings: aws.OceanLaunchSpecBlockDeviceMappingArray{\n\t\t\t\t\u0026aws.OceanLaunchSpecBlockDeviceMappingArgs{\n\t\t\t\t\tDeviceName: pulumi.String(\"/dev/xvda1\"),\n\t\t\t\t\tEbs: \u0026aws.OceanLaunchSpecBlockDeviceMappingEbsArgs{\n\t\t\t\t\t\tDeleteOnTermination: pulumi.Bool(true),\n\t\t\t\t\t\tDynamicVolumeSize: \u0026aws.OceanLaunchSpecBlockDeviceMappingEbsDynamicVolumeSizeArgs{\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\tCreateOptions: \u0026aws.OceanLaunchSpecCreateOptionsArgs{\n\t\t\t\tInitialNodes: pulumi.Int(1),\n\t\t\t},\n\t\t\tElasticIpPools: aws.OceanLaunchSpecElasticIpPoolArray{\n\t\t\t\t\u0026aws.OceanLaunchSpecElasticIpPoolArgs{\n\t\t\t\t\tTagSelector: \u0026aws.OceanLaunchSpecElasticIpPoolTagSelectorArgs{\n\t\t\t\t\t\tTagKey: pulumi.String(\"key\"),\n\t\t\t\t\t\tTagValue: pulumi.String(\"value\"),\n\t\t\t\t\t},\n\t\t\t\t},\n\t\t\t},\n\t\t\tIamInstanceProfile: pulumi.String(\"iam-profile\"),\n\t\t\tImageId: pulumi.String(\"ami-123456\"),\n\t\t\tInstanceTypes: pulumi.StringArray{\n\t\t\t\tpulumi.String(\"m4.large\"),\n\t\t\t\tpulumi.String(\"m4.xlarge\"),\n\t\t\t\tpulumi.String(\"m4.2xlarge\"),\n\t\t\t\tpulumi.String(\"m4.4xlarge\"),\n\t\t\t},\n\t\t\tLabels: aws.OceanLaunchSpecLabelArray{\n\t\t\t\t\u0026aws.OceanLaunchSpecLabelArgs{\n\t\t\t\t\tKey: pulumi.String(\"key1\"),\n\t\t\t\t\tValue: pulumi.String(\"value1\"),\n\t\t\t\t},\n\t\t\t},\n\t\t\tOceanId: pulumi.String(\"o-123456\"),\n\t\t\tResourceLimits: aws.OceanLaunchSpecResourceLimitArray{\n\t\t\t\t\u0026aws.OceanLaunchSpecResourceLimitArgs{\n\t\t\t\t\tMaxInstanceCount: pulumi.Int(4),\n\t\t\t\t},\n\t\t\t},\n\t\t\tRestrictScaleDown: pulumi.Bool(true),\n\t\t\tRootVolumeSize: pulumi.Int(30),\n\t\t\tSecurityGroups: pulumi.StringArray{\n\t\t\t\tpulumi.String(\"sg-987654321\"),\n\t\t\t},\n\t\t\tStrategies: aws.OceanLaunchSpecStrategyArray{\n\t\t\t\t\u0026aws.OceanLaunchSpecStrategyArgs{\n\t\t\t\t\tSpotPercentage: pulumi.Int(70),\n\t\t\t\t},\n\t\t\t},\n\t\t\tSubnetIds: pulumi.StringArray{\n\t\t\t\tpulumi.String(\"subnet-1234\"),\n\t\t\t},\n\t\t\tTags: aws.OceanLaunchSpecTagArray{\n\t\t\t\t\u0026aws.OceanLaunchSpecTagArgs{\n\t\t\t\t\tKey: pulumi.String(\"Env\"),\n\t\t\t\t\tValue: pulumi.String(\"production\"),\n\t\t\t\t},\n\t\t\t},\n\t\t\tTaints: aws.OceanLaunchSpecTaintArray{\n\t\t\t\t\u0026aws.OceanLaunchSpecTaintArgs{\n\t\t\t\t\tEffect: pulumi.String(\"NoExecute\"),\n\t\t\t\t\tKey: pulumi.String(\"key1\"),\n\t\t\t\t\tValue: pulumi.String(\"value1\"),\n\t\t\t\t},\n\t\t\t},\n\t\t\tUserData: pulumi.String(\"echo Hello, world!\"),\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```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\n\nexport const oceanLaunchspecId = spotinst_ocean_aws_launch_spec.example.id;\n```\n```python\nimport pulumi\n\npulumi.export(\"oceanLaunchspecId\", spotinst_ocean_aws_launch_spec[\"example\"][\"id\"])\n```\n```csharp\nusing Pulumi;\n\nclass MyStack : Stack\n{\n public MyStack()\n {\n this.OceanLaunchspecId = spotinst_ocean_aws_launch_spec.Example.Id;\n }\n\n [Output(\"oceanLaunchspecId\")]\n public Output\u003cstring\u003e OceanLaunchspecId { 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(\"oceanLaunchspecId\", spotinst_ocean_aws_launch_spec.Example.Id)\n\t\treturn nil\n\t})\n}\n```\n{{% /example %}}\n{{% /examples %}}",
"properties": {
"associatePublicIpAddress": {
"type": "boolean",
@@ -13393,6 +13478,9 @@
},
"description": "Object. Array list of block devices that are exposed to the instance, specify either virtual devices and EBS volumes.\n"
},
+ "createOptions": {
+ "$ref": "#/types/spotinst:aws/OceanLaunchSpecCreateOptions:OceanLaunchSpecCreateOptions"
+ },
"elasticIpPools": {
"type": "array",
"items": {
@@ -13506,6 +13594,9 @@
},
"description": "Object. Array list of block devices that are exposed to the instance, specify either virtual devices and EBS volumes.\n"
},
+ "createOptions": {
+ "$ref": "#/types/spotinst:aws/OceanLaunchSpecCreateOptions:OceanLaunchSpecCreateOptions"
+ },
"elasticIpPools": {
"type": "array",
"items": {
@@ -13620,6 +13711,9 @@
},
"description": "Object. Array list of block devices that are exposed to the instance, specify either virtual devices and EBS volumes.\n"
},
+ "createOptions": {
+ "$ref": "#/types/spotinst:aws/OceanLaunchSpecCreateOptions:OceanLaunchSpecCreateOptions"
+ },
"elasticIpPools": {
"type": "array",
"items": {
@@ -16138,7 +16232,7 @@
}
},
"spotinst:gke/oceanLaunchSpec:OceanLaunchSpec": {
- "description": "Manages a custom Spotinst Ocean GKE Launch Spec 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.gke.OceanLaunchSpec(\"example\", {\n autoscaleHeadrooms: [{\n cpuPerUnit: 1000,\n gpuPerUnit: 0,\n memoryPerUnit: 2048,\n numOfUnits: 5,\n }],\n labels: [{\n key: \"labelKey\",\n value: \"labelVal\",\n }],\n metadatas: [{\n key: \"gci-update-strategy\",\n value: \"update_disabled\",\n }],\n oceanId: \"o-123456\",\n restrictScaleDown: true,\n sourceImage: \"image\",\n taints: [{\n effect: \"taintEffect\",\n key: \"taintKey\",\n value: \"taintVal\",\n }],\n});\n```\n```python\nimport pulumi\nimport pulumi_spotinst as spotinst\n\nexample = spotinst.gke.OceanLaunchSpec(\"example\",\n autoscale_headrooms=[spotinst.gke.OceanLaunchSpecAutoscaleHeadroomArgs(\n cpu_per_unit=1000,\n gpu_per_unit=0,\n memory_per_unit=2048,\n num_of_units=5,\n )],\n labels=[spotinst.gke.OceanLaunchSpecLabelArgs(\n key=\"labelKey\",\n value=\"labelVal\",\n )],\n metadatas=[spotinst.gke.OceanLaunchSpecMetadataArgs(\n key=\"gci-update-strategy\",\n value=\"update_disabled\",\n )],\n ocean_id=\"o-123456\",\n restrict_scale_down=True,\n source_image=\"image\",\n taints=[spotinst.gke.OceanLaunchSpecTaintArgs(\n effect=\"taintEffect\",\n key=\"taintKey\",\n value=\"taintVal\",\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.OceanLaunchSpec(\"example\", new SpotInst.Gke.OceanLaunchSpecArgs\n {\n AutoscaleHeadrooms = \n {\n new SpotInst.Gke.Inputs.OceanLaunchSpecAutoscaleHeadroomArgs\n {\n CpuPerUnit = 1000,\n GpuPerUnit = 0,\n MemoryPerUnit = 2048,\n NumOfUnits = 5,\n },\n },\n Labels = \n {\n new SpotInst.Gke.Inputs.OceanLaunchSpecLabelArgs\n {\n Key = \"labelKey\",\n Value = \"labelVal\",\n },\n },\n Metadatas = \n {\n new SpotInst.Gke.Inputs.OceanLaunchSpecMetadataArgs\n {\n Key = \"gci-update-strategy\",\n Value = \"update_disabled\",\n },\n },\n OceanId = \"o-123456\",\n RestrictScaleDown = true,\n SourceImage = \"image\",\n Taints = \n {\n new SpotInst.Gke.Inputs.OceanLaunchSpecTaintArgs\n {\n Effect = \"taintEffect\",\n Key = \"taintKey\",\n Value = \"taintVal\",\n },\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.NewOceanLaunchSpec(ctx, \"example\", \u0026gke.OceanLaunchSpecArgs{\n\t\t\tAutoscaleHeadrooms: gke.OceanLaunchSpecAutoscaleHeadroomArray{\n\t\t\t\t\u0026gke.OceanLaunchSpecAutoscaleHeadroomArgs{\n\t\t\t\t\tCpuPerUnit: pulumi.Int(1000),\n\t\t\t\t\tGpuPerUnit: pulumi.Int(0),\n\t\t\t\t\tMemoryPerUnit: pulumi.Int(2048),\n\t\t\t\t\tNumOfUnits: pulumi.Int(5),\n\t\t\t\t},\n\t\t\t},\n\t\t\tLabels: gke.OceanLaunchSpecLabelArray{\n\t\t\t\t\u0026gke.OceanLaunchSpecLabelArgs{\n\t\t\t\t\tKey: pulumi.String(\"labelKey\"),\n\t\t\t\t\tValue: pulumi.String(\"labelVal\"),\n\t\t\t\t},\n\t\t\t},\n\t\t\tMetadatas: gke.OceanLaunchSpecMetadataArray{\n\t\t\t\t\u0026gke.OceanLaunchSpecMetadataArgs{\n\t\t\t\t\tKey: pulumi.String(\"gci-update-strategy\"),\n\t\t\t\t\tValue: pulumi.String(\"update_disabled\"),\n\t\t\t\t},\n\t\t\t},\n\t\t\tOceanId: pulumi.String(\"o-123456\"),\n\t\t\tRestrictScaleDown: pulumi.Bool(true),\n\t\t\tSourceImage: pulumi.String(\"image\"),\n\t\t\tTaints: gke.OceanLaunchSpecTaintArray{\n\t\t\t\t\u0026gke.OceanLaunchSpecTaintArgs{\n\t\t\t\t\tEffect: pulumi.String(\"taintEffect\"),\n\t\t\t\t\tKey: pulumi.String(\"taintKey\"),\n\t\t\t\t\tValue: pulumi.String(\"taintVal\"),\n\t\t\t\t},\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```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\n\nexport const oceanLaunchspecId = spotinst_ocean_gke_launch_spec.example.id;\n```\n```python\nimport pulumi\n\npulumi.export(\"oceanLaunchspecId\", spotinst_ocean_gke_launch_spec[\"example\"][\"id\"])\n```\n```csharp\nusing Pulumi;\n\nclass MyStack : Stack\n{\n public MyStack()\n {\n this.OceanLaunchspecId = spotinst_ocean_gke_launch_spec.Example.Id;\n }\n\n [Output(\"oceanLaunchspecId\")]\n public Output\u003cstring\u003e OceanLaunchspecId { 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(\"oceanLaunchspecId\", spotinst_ocean_gke_launch_spec.Example.Id)\n\t\treturn nil\n\t})\n}\n```\n{{% /example %}}\n{{% /examples %}}",
+ "description": "Manages a custom Spotinst Ocean GKE Launch Spec 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.gke.OceanLaunchSpec(\"example\", {\n autoscaleHeadrooms: [{\n cpuPerUnit: 1000,\n gpuPerUnit: 0,\n memoryPerUnit: 2048,\n numOfUnits: 5,\n }],\n labels: [{\n key: \"labelKey\",\n value: \"labelVal\",\n }],\n metadatas: [{\n key: \"gci-update-strategy\",\n value: \"update_disabled\",\n }],\n oceanId: \"o-123456\",\n restrictScaleDown: true,\n sourceImage: \"image\",\n strategies: [{\n preemptiblePercentage: 30,\n }],\n taints: [{\n effect: \"taintEffect\",\n key: \"taintKey\",\n value: \"taintVal\",\n }],\n});\n```\n```python\nimport pulumi\nimport pulumi_spotinst as spotinst\n\nexample = spotinst.gke.OceanLaunchSpec(\"example\",\n autoscale_headrooms=[spotinst.gke.OceanLaunchSpecAutoscaleHeadroomArgs(\n cpu_per_unit=1000,\n gpu_per_unit=0,\n memory_per_unit=2048,\n num_of_units=5,\n )],\n labels=[spotinst.gke.OceanLaunchSpecLabelArgs(\n key=\"labelKey\",\n value=\"labelVal\",\n )],\n metadatas=[spotinst.gke.OceanLaunchSpecMetadataArgs(\n key=\"gci-update-strategy\",\n value=\"update_disabled\",\n )],\n ocean_id=\"o-123456\",\n restrict_scale_down=True,\n source_image=\"image\",\n strategies=[spotinst.gke.OceanLaunchSpecStrategyArgs(\n preemptible_percentage=30,\n )],\n taints=[spotinst.gke.OceanLaunchSpecTaintArgs(\n effect=\"taintEffect\",\n key=\"taintKey\",\n value=\"taintVal\",\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.OceanLaunchSpec(\"example\", new SpotInst.Gke.OceanLaunchSpecArgs\n {\n AutoscaleHeadrooms = \n {\n new SpotInst.Gke.Inputs.OceanLaunchSpecAutoscaleHeadroomArgs\n {\n CpuPerUnit = 1000,\n GpuPerUnit = 0,\n MemoryPerUnit = 2048,\n NumOfUnits = 5,\n },\n },\n Labels = \n {\n new SpotInst.Gke.Inputs.OceanLaunchSpecLabelArgs\n {\n Key = \"labelKey\",\n Value = \"labelVal\",\n },\n },\n Metadatas = \n {\n new SpotInst.Gke.Inputs.OceanLaunchSpecMetadataArgs\n {\n Key = \"gci-update-strategy\",\n Value = \"update_disabled\",\n },\n },\n OceanId = \"o-123456\",\n RestrictScaleDown = true,\n SourceImage = \"image\",\n Strategies = \n {\n new SpotInst.Gke.Inputs.OceanLaunchSpecStrategyArgs\n {\n PreemptiblePercentage = 30,\n },\n },\n Taints = \n {\n new SpotInst.Gke.Inputs.OceanLaunchSpecTaintArgs\n {\n Effect = \"taintEffect\",\n Key = \"taintKey\",\n Value = \"taintVal\",\n },\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.NewOceanLaunchSpec(ctx, \"example\", \u0026gke.OceanLaunchSpecArgs{\n\t\t\tAutoscaleHeadrooms: gke.OceanLaunchSpecAutoscaleHeadroomArray{\n\t\t\t\t\u0026gke.OceanLaunchSpecAutoscaleHeadroomArgs{\n\t\t\t\t\tCpuPerUnit: pulumi.Int(1000),\n\t\t\t\t\tGpuPerUnit: pulumi.Int(0),\n\t\t\t\t\tMemoryPerUnit: pulumi.Int(2048),\n\t\t\t\t\tNumOfUnits: pulumi.Int(5),\n\t\t\t\t},\n\t\t\t},\n\t\t\tLabels: gke.OceanLaunchSpecLabelArray{\n\t\t\t\t\u0026gke.OceanLaunchSpecLabelArgs{\n\t\t\t\t\tKey: pulumi.String(\"labelKey\"),\n\t\t\t\t\tValue: pulumi.String(\"labelVal\"),\n\t\t\t\t},\n\t\t\t},\n\t\t\tMetadatas: gke.OceanLaunchSpecMetadataArray{\n\t\t\t\t\u0026gke.OceanLaunchSpecMetadataArgs{\n\t\t\t\t\tKey: pulumi.String(\"gci-update-strategy\"),\n\t\t\t\t\tValue: pulumi.String(\"update_disabled\"),\n\t\t\t\t},\n\t\t\t},\n\t\t\tOceanId: pulumi.String(\"o-123456\"),\n\t\t\tRestrictScaleDown: pulumi.Bool(true),\n\t\t\tSourceImage: pulumi.String(\"image\"),\n\t\t\tStrategies: gke.OceanLaunchSpecStrategyArray{\n\t\t\t\t\u0026gke.OceanLaunchSpecStrategyArgs{\n\t\t\t\t\tPreemptiblePercentage: pulumi.Int(30),\n\t\t\t\t},\n\t\t\t},\n\t\t\tTaints: gke.OceanLaunchSpecTaintArray{\n\t\t\t\t\u0026gke.OceanLaunchSpecTaintArgs{\n\t\t\t\t\tEffect: pulumi.String(\"taintEffect\"),\n\t\t\t\t\tKey: pulumi.String(\"taintKey\"),\n\t\t\t\t\tValue: pulumi.String(\"taintVal\"),\n\t\t\t\t},\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```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\n\nexport const oceanLaunchspecId = spotinst_ocean_gke_launch_spec.example.id;\n```\n```python\nimport pulumi\n\npulumi.export(\"oceanLaunchspecId\", spotinst_ocean_gke_launch_spec[\"example\"][\"id\"])\n```\n```csharp\nusing Pulumi;\n\nclass MyStack : Stack\n{\n public MyStack()\n {\n this.OceanLaunchspecId = spotinst_ocean_gke_launch_spec.Example.Id;\n }\n\n [Output(\"oceanLaunchspecId\")]\n public Output\u003cstring\u003e OceanLaunchspecId { 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(\"oceanLaunchspecId\", spotinst_ocean_gke_launch_spec.Example.Id)\n\t\treturn nil\n\t})\n}\n```\n{{% /example %}}\n{{% /examples %}}",
"properties": {
"autoscaleHeadrooms": {
"type": "array",
@@ -16163,7 +16257,7 @@
},
"oceanId": {
"type": "string",
- "description": "The Ocean cluster ID required for launchSpec create.\n"
+ "description": "The Ocean cluster ID.\n"
},
"restrictScaleDown": {
"type": "boolean",
@@ -16173,6 +16267,13 @@
"type": "string",
"description": "Image URL.\n"
},
+ "strategies": {
+ "type": "array",
+ "items": {
+ "$ref": "#/types/spotinst:gke/OceanLaunchSpecStrategy:OceanLaunchSpecStrategy"
+ },
+ "description": "The Ocean Launch Spec Strategy object.\n"
+ },
"taints": {
"type": "array",
"items": {
@@ -16210,7 +16311,7 @@
},
"oceanId": {
"type": "string",
- "description": "The Ocean cluster ID required for launchSpec create.\n"
+ "description": "The Ocean cluster ID.\n"
},
"restrictScaleDown": {
"type": "boolean",
@@ -16220,6 +16321,13 @@
"type": "string",
"description": "Image URL.\n"
},
+ "strategies": {
+ "type": "array",
+ "items": {
+ "$ref": "#/types/spotinst:gke/OceanLaunchSpecStrategy:OceanLaunchSpecStrategy"
+ },
+ "description": "The Ocean Launch Spec Strategy object.\n"
+ },
"taints": {
"type": "array",
"items": {
@@ -16259,7 +16367,7 @@
},
"oceanId": {
"type": "string",
- "description": "The Ocean cluster ID required for launchSpec create.\n"
+ "description": "The Ocean cluster ID.\n"
},
"restrictScaleDown": {
"type": "boolean",
@@ -16269,6 +16377,13 @@
"type": "string",
"description": "Image URL.\n"
},
+ "strategies": {
+ "type": "array",
+ "items": {
+ "$ref": "#/types/spotinst:gke/OceanLaunchSpecStrategy:OceanLaunchSpecStrategy"
+ },
+ "description": "The Ocean Launch Spec Strategy object.\n"
+ },
"taints": {
"type": "array",
"items": {
diff --git a/provider/go.mod b/provider/go.mod
index 171c2fb3..eef10636 100644
--- a/provider/go.mod
+++ b/provider/go.mod
@@ -13,7 +13,7 @@ require (
replace (
github.com/hashicorp/go-getter v1.5.0 => github.com/hashicorp/go-getter v1.4.0
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.20210429195502-d15ec9bf741c
+ github.com/spotinst/terraform-provider-spotinst => github.com/pulumi/terraform-provider-spotinst v1.33.1-0.20210603161524-8bac58c6262b
golang.org/x/crypto => golang.org/x/crypto v0.0.0-20200117160349-530e935923ad
golang.org/x/sys => golang.org/x/sys v0.0.0-20190412213103-97732733099d
)
diff --git a/provider/go.sum b/provider/go.sum
index dc13cdf4..60fb2951 100644
--- a/provider/go.sum
+++ b/provider/go.sum
@@ -797,6 +797,10 @@ github.com/pulumi/terraform-provider-spotinst v1.33.1-0.20210428125936-f306bfac7
github.com/pulumi/terraform-provider-spotinst v1.33.1-0.20210428125936-f306bfac77f4/go.mod h1:yMqifs88/giksXnlTY2HOuevmJiqhDR+jXl1VgJkh1E=
github.com/pulumi/terraform-provider-spotinst v1.33.1-0.20210429195502-d15ec9bf741c h1:8bqh/CsWNRI3CiGKBfngwvRYPLfr3DvEfRFmgKUl70A=
github.com/pulumi/terraform-provider-spotinst v1.33.1-0.20210429195502-d15ec9bf741c/go.mod h1:yMqifs88/giksXnlTY2HOuevmJiqhDR+jXl1VgJkh1E=
+github.com/pulumi/terraform-provider-spotinst v1.33.1-0.20210504172624-0754182c644d h1:Tjv8+VX4+BwY2tCey08nPvC1v9iUhfouJa7nr18npJk=
+github.com/pulumi/terraform-provider-spotinst v1.33.1-0.20210504172624-0754182c644d/go.mod h1:YkHUgat6vIIzuyyqJIpmS2m1JywCt31pRndta1dD/iw=
+github.com/pulumi/terraform-provider-spotinst v1.33.1-0.20210603161524-8bac58c6262b h1:T5u3urfUHWfjjBc7J0Gs8inzH+ZbjRxFqpwyn57YJJg=
+github.com/pulumi/terraform-provider-spotinst v1.33.1-0.20210603161524-8bac58c6262b/go.mod h1:dSI6prdnXj6l4KEnkkXEtm0KBz3T00rpJACkL+4503c=
github.com/rjeczalik/notify v0.9.2 h1:MiTWrPj55mNDHEiIX5YUSKefw/+lCQVoAFmD6oQm5w8=
github.com/rjeczalik/notify v0.9.2/go.mod h1:aErll2f0sUX9PXZnVNyeiObbmTlk5jnMoCa4QEjJeqM=
github.com/rogpeppe/fastuuid v0.0.0-20150106093220-6724a57986af h1:gu+uRPtBe88sKxUCEXRoeCvVG90TJmwhiqRpvdhQFng=
@@ -854,6 +858,10 @@ github.com/spf13/viper v1.4.0 h1:yXHLWeravcrgGyFSyCgdYpXQ9dR9c/WED3pg1RhxqEU=
github.com/spf13/viper v1.4.0/go.mod h1:PTJ7Z/lr49W6bUbkmS1V3by4uWynFiR9p7+dSq/yZzE=
github.com/spotinst/spotinst-sdk-go v1.85.0 h1:tMXKhxfmU7BnqTnUpR2s/hEyTASfrxkgPb/3Tqn6tmM=
github.com/spotinst/spotinst-sdk-go v1.85.0/go.mod h1:RuKksd1/RyQogMCxKFI5B75NeFRcgl3W+26DVX6S4m0=
+github.com/spotinst/spotinst-sdk-go v1.86.0 h1:52oFqTav1Mi+iVfhqliNXgVXMpbhXBxnWO+LlTzxeOw=
+github.com/spotinst/spotinst-sdk-go v1.86.0/go.mod h1:RuKksd1/RyQogMCxKFI5B75NeFRcgl3W+26DVX6S4m0=
+github.com/spotinst/spotinst-sdk-go v1.89.0 h1:VRgnhUwrI2XwzZLHQyzLguGS4z5Ok5wgy4Y9RVs+Rh8=
+github.com/spotinst/spotinst-sdk-go v1.89.0/go.mod h1:RuKksd1/RyQogMCxKFI5B75NeFRcgl3W+26DVX6S4m0=
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=
diff --git a/sdk/dotnet/Aws/Elastigroup.cs b/sdk/dotnet/Aws/Elastigroup.cs
index 7e3ff51b..b501ecd1 100644
--- a/sdk/dotnet/Aws/Elastigroup.cs
+++ b/sdk/dotnet/Aws/Elastigroup.cs
@@ -377,6 +377,9 @@ public partial class Elastigroup : Pulumi.CustomResource
[Output("statefulDeallocation")]
public Output StatefulDeallocation { get; private set; } = null!;
+ [Output("statefulInstanceActions")]
+ public Output> StatefulInstanceActions { get; private set; } = null!;
+
///
/// List of Strings of subnet identifiers.
/// Note: When this parameter is set, `availability_zones` should be left unused.
@@ -940,6 +943,14 @@ public InputList Signals
[Input("statefulDeallocation")]
public Input? StatefulDeallocation { get; set; }
+ [Input("statefulInstanceActions")]
+ private InputList? _statefulInstanceActions;
+ public InputList StatefulInstanceActions
+ {
+ get => _statefulInstanceActions ?? (_statefulInstanceActions = new InputList());
+ set => _statefulInstanceActions = value;
+ }
+
[Input("subnetIds")]
private InputList? _subnetIds;
@@ -1482,6 +1493,14 @@ public InputList Signals
[Input("statefulDeallocation")]
public Input? StatefulDeallocation { get; set; }
+ [Input("statefulInstanceActions")]
+ private InputList? _statefulInstanceActions;
+ public InputList StatefulInstanceActions
+ {
+ get => _statefulInstanceActions ?? (_statefulInstanceActions = new InputList());
+ set => _statefulInstanceActions = value;
+ }
+
[Input("subnetIds")]
private InputList? _subnetIds;
diff --git a/sdk/dotnet/Aws/Inputs/ElastigroupStatefulInstanceActionArgs.cs b/sdk/dotnet/Aws/Inputs/ElastigroupStatefulInstanceActionArgs.cs
new file mode 100644
index 00000000..e1fd6b86
--- /dev/null
+++ b/sdk/dotnet/Aws/Inputs/ElastigroupStatefulInstanceActionArgs.cs
@@ -0,0 +1,31 @@
+// *** WARNING: this file was generated by the Pulumi Terraform Bridge (tfgen) Tool. ***
+// *** Do not edit by hand unless you're certain you know what you are doing! ***
+
+using System;
+using System.Collections.Generic;
+using System.Collections.Immutable;
+using System.Threading.Tasks;
+using Pulumi.Serialization;
+
+namespace Pulumi.SpotInst.Aws.Inputs
+{
+
+ public sealed class ElastigroupStatefulInstanceActionArgs : Pulumi.ResourceArgs
+ {
+ ///
+ /// String, Stateful Instance ID on which the action should be performed.
+ ///
+ [Input("statefulInstanceId", required: true)]
+ public Input StatefulInstanceId { get; set; } = null!;
+
+ ///
+ /// String, Action type. Supported action types: `pause`, `resume`, `recycle`, `deallocate`.
+ ///
+ [Input("type", required: true)]
+ public Input Type { get; set; } = null!;
+
+ public ElastigroupStatefulInstanceActionArgs()
+ {
+ }
+ }
+}
diff --git a/sdk/dotnet/Aws/Inputs/ElastigroupStatefulInstanceActionGetArgs.cs b/sdk/dotnet/Aws/Inputs/ElastigroupStatefulInstanceActionGetArgs.cs
new file mode 100644
index 00000000..c56580c4
--- /dev/null
+++ b/sdk/dotnet/Aws/Inputs/ElastigroupStatefulInstanceActionGetArgs.cs
@@ -0,0 +1,31 @@
+// *** WARNING: this file was generated by the Pulumi Terraform Bridge (tfgen) Tool. ***
+// *** Do not edit by hand unless you're certain you know what you are doing! ***
+
+using System;
+using System.Collections.Generic;
+using System.Collections.Immutable;
+using System.Threading.Tasks;
+using Pulumi.Serialization;
+
+namespace Pulumi.SpotInst.Aws.Inputs
+{
+
+ public sealed class ElastigroupStatefulInstanceActionGetArgs : Pulumi.ResourceArgs
+ {
+ ///
+ /// String, Stateful Instance ID on which the action should be performed.
+ ///
+ [Input("statefulInstanceId", required: true)]
+ public Input StatefulInstanceId { get; set; } = null!;
+
+ ///
+ /// String, Action type. Supported action types: `pause`, `resume`, `recycle`, `deallocate`.
+ ///
+ [Input("type", required: true)]
+ public Input Type { get; set; } = null!;
+
+ public ElastigroupStatefulInstanceActionGetArgs()
+ {
+ }
+ }
+}
diff --git a/sdk/dotnet/Aws/Inputs/OceanLaunchSpecCreateOptionsArgs.cs b/sdk/dotnet/Aws/Inputs/OceanLaunchSpecCreateOptionsArgs.cs
new file mode 100644
index 00000000..7cc27b6a
--- /dev/null
+++ b/sdk/dotnet/Aws/Inputs/OceanLaunchSpecCreateOptionsArgs.cs
@@ -0,0 +1,25 @@
+// *** WARNING: this file was generated by the Pulumi Terraform Bridge (tfgen) Tool. ***
+// *** Do not edit by hand unless you're certain you know what you are doing! ***
+
+using System;
+using System.Collections.Generic;
+using System.Collections.Immutable;
+using System.Threading.Tasks;
+using Pulumi.Serialization;
+
+namespace Pulumi.SpotInst.Aws.Inputs
+{
+
+ public sealed class OceanLaunchSpecCreateOptionsArgs : Pulumi.ResourceArgs
+ {
+ ///
+ /// When set to an integer greater than 0, a corresponding amount of nodes will be launched from the created virtual node group.
+ ///
+ [Input("initialNodes", required: true)]
+ public Input InitialNodes { get; set; } = null!;
+
+ public OceanLaunchSpecCreateOptionsArgs()
+ {
+ }
+ }
+}
diff --git a/sdk/dotnet/Aws/Inputs/OceanLaunchSpecCreateOptionsGetArgs.cs b/sdk/dotnet/Aws/Inputs/OceanLaunchSpecCreateOptionsGetArgs.cs
new file mode 100644
index 00000000..b714a1cc
--- /dev/null
+++ b/sdk/dotnet/Aws/Inputs/OceanLaunchSpecCreateOptionsGetArgs.cs
@@ -0,0 +1,25 @@
+// *** WARNING: this file was generated by the Pulumi Terraform Bridge (tfgen) Tool. ***
+// *** Do not edit by hand unless you're certain you know what you are doing! ***
+
+using System;
+using System.Collections.Generic;
+using System.Collections.Immutable;
+using System.Threading.Tasks;
+using Pulumi.Serialization;
+
+namespace Pulumi.SpotInst.Aws.Inputs
+{
+
+ public sealed class OceanLaunchSpecCreateOptionsGetArgs : Pulumi.ResourceArgs
+ {
+ ///
+ /// When set to an integer greater than 0, a corresponding amount of nodes will be launched from the created virtual node group.
+ ///
+ [Input("initialNodes", required: true)]
+ public Input InitialNodes { get; set; } = null!;
+
+ public OceanLaunchSpecCreateOptionsGetArgs()
+ {
+ }
+ }
+}
diff --git a/sdk/dotnet/Aws/ManagedInstance.cs b/sdk/dotnet/Aws/ManagedInstance.cs
index 1961255e..c50aed1c 100644
--- a/sdk/dotnet/Aws/ManagedInstance.cs
+++ b/sdk/dotnet/Aws/ManagedInstance.cs
@@ -131,6 +131,9 @@ public partial class ManagedInstance : Pulumi.CustomResource
[Output("loadBalancers")]
public Output> LoadBalancers { get; private set; } = null!;
+ [Output("minimumInstanceLifetime")]
+ public Output MinimumInstanceLifetime { get; private set; } = null!;
+
///
/// The record set name.
///
@@ -434,6 +437,9 @@ public InputList LoadBalancers
set => _loadBalancers = value;
}
+ [Input("minimumInstanceLifetime")]
+ public Input? MinimumInstanceLifetime { get; set; }
+
///
/// The record set name.
///
@@ -732,6 +738,9 @@ public InputList LoadBalancers
set => _loadBalancers = value;
}
+ [Input("minimumInstanceLifetime")]
+ public Input? MinimumInstanceLifetime { get; set; }
+
///
/// The record set name.
///
diff --git a/sdk/dotnet/Aws/OceanLaunchSpec.cs b/sdk/dotnet/Aws/OceanLaunchSpec.cs
index 3eb4c667..31bf27e8 100644
--- a/sdk/dotnet/Aws/OceanLaunchSpec.cs
+++ b/sdk/dotnet/Aws/OceanLaunchSpec.cs
@@ -56,6 +56,10 @@ namespace Pulumi.SpotInst.Aws
/// },
/// },
/// },
+ /// CreateOptions = new SpotInst.Aws.Inputs.OceanLaunchSpecCreateOptionsArgs
+ /// {
+ /// InitialNodes = 1,
+ /// },
/// ElasticIpPools =
/// {
/// new SpotInst.Aws.Inputs.OceanLaunchSpecElasticIpPoolArgs
@@ -168,6 +172,9 @@ public partial class OceanLaunchSpec : Pulumi.CustomResource
[Output("blockDeviceMappings")]
public Output> BlockDeviceMappings { get; private set; } = null!;
+ [Output("createOptions")]
+ public Output CreateOptions { get; private set; } = null!;
+
///
/// Assign an Elastic IP to the instances spun by the Virtual Node Group. Can be null.
///
@@ -334,6 +341,9 @@ public InputList BlockDeviceMappin
set => _blockDeviceMappings = value;
}
+ [Input("createOptions")]
+ public Input? CreateOptions { get; set; }
+
[Input("elasticIpPools")]
private InputList? _elasticIpPools;
@@ -513,6 +523,9 @@ public InputList BlockDeviceMap
set => _blockDeviceMappings = value;
}
+ [Input("createOptions")]
+ public Input? CreateOptions { get; set; }
+
[Input("elasticIpPools")]
private InputList? _elasticIpPools;
diff --git a/sdk/dotnet/Aws/Outputs/ElastigroupStatefulInstanceAction.cs b/sdk/dotnet/Aws/Outputs/ElastigroupStatefulInstanceAction.cs
new file mode 100644
index 00000000..918d1617
--- /dev/null
+++ b/sdk/dotnet/Aws/Outputs/ElastigroupStatefulInstanceAction.cs
@@ -0,0 +1,35 @@
+// *** WARNING: this file was generated by the Pulumi Terraform Bridge (tfgen) Tool. ***
+// *** Do not edit by hand unless you're certain you know what you are doing! ***
+
+using System;
+using System.Collections.Generic;
+using System.Collections.Immutable;
+using System.Threading.Tasks;
+using Pulumi.Serialization;
+
+namespace Pulumi.SpotInst.Aws.Outputs
+{
+
+ [OutputType]
+ public sealed class ElastigroupStatefulInstanceAction
+ {
+ ///
+ /// String, Stateful Instance ID on which the action should be performed.
+ ///
+ public readonly string StatefulInstanceId;
+ ///
+ /// String, Action type. Supported action types: `pause`, `resume`, `recycle`, `deallocate`.
+ ///
+ public readonly string Type;
+
+ [OutputConstructor]
+ private ElastigroupStatefulInstanceAction(
+ string statefulInstanceId,
+
+ string type)
+ {
+ StatefulInstanceId = statefulInstanceId;
+ Type = type;
+ }
+ }
+}
diff --git a/sdk/dotnet/Aws/Outputs/OceanLaunchSpecCreateOptions.cs b/sdk/dotnet/Aws/Outputs/OceanLaunchSpecCreateOptions.cs
new file mode 100644
index 00000000..01791e27
--- /dev/null
+++ b/sdk/dotnet/Aws/Outputs/OceanLaunchSpecCreateOptions.cs
@@ -0,0 +1,27 @@
+// *** WARNING: this file was generated by the Pulumi Terraform Bridge (tfgen) Tool. ***
+// *** Do not edit by hand unless you're certain you know what you are doing! ***
+
+using System;
+using System.Collections.Generic;
+using System.Collections.Immutable;
+using System.Threading.Tasks;
+using Pulumi.Serialization;
+
+namespace Pulumi.SpotInst.Aws.Outputs
+{
+
+ [OutputType]
+ public sealed class OceanLaunchSpecCreateOptions
+ {
+ ///
+ /// When set to an integer greater than 0, a corresponding amount of nodes will be launched from the created virtual node group.
+ ///
+ public readonly int InitialNodes;
+
+ [OutputConstructor]
+ private OceanLaunchSpecCreateOptions(int initialNodes)
+ {
+ InitialNodes = initialNodes;
+ }
+ }
+}
diff --git a/sdk/dotnet/Gke/Inputs/OceanLaunchSpecStrategyArgs.cs b/sdk/dotnet/Gke/Inputs/OceanLaunchSpecStrategyArgs.cs
new file mode 100644
index 00000000..35f542b1
--- /dev/null
+++ b/sdk/dotnet/Gke/Inputs/OceanLaunchSpecStrategyArgs.cs
@@ -0,0 +1,25 @@
+// *** WARNING: this file was generated by the Pulumi Terraform Bridge (tfgen) Tool. ***
+// *** Do not edit by hand unless you're certain you know what you are doing! ***
+
+using System;
+using System.Collections.Generic;
+using System.Collections.Immutable;
+using System.Threading.Tasks;
+using Pulumi.Serialization;
+
+namespace Pulumi.SpotInst.Gke.Inputs
+{
+
+ public sealed class OceanLaunchSpecStrategyArgs : Pulumi.ResourceArgs
+ {
+ ///
+ /// Defines the desired preemptible percentage for this launch specification.
+ ///
+ [Input("preemptiblePercentage")]
+ public Input? PreemptiblePercentage { get; set; }
+
+ public OceanLaunchSpecStrategyArgs()
+ {
+ }
+ }
+}
diff --git a/sdk/dotnet/Gke/Inputs/OceanLaunchSpecStrategyGetArgs.cs b/sdk/dotnet/Gke/Inputs/OceanLaunchSpecStrategyGetArgs.cs
new file mode 100644
index 00000000..2081abeb
--- /dev/null
+++ b/sdk/dotnet/Gke/Inputs/OceanLaunchSpecStrategyGetArgs.cs
@@ -0,0 +1,25 @@
+// *** WARNING: this file was generated by the Pulumi Terraform Bridge (tfgen) Tool. ***
+// *** Do not edit by hand unless you're certain you know what you are doing! ***
+
+using System;
+using System.Collections.Generic;
+using System.Collections.Immutable;
+using System.Threading.Tasks;
+using Pulumi.Serialization;
+
+namespace Pulumi.SpotInst.Gke.Inputs
+{
+
+ public sealed class OceanLaunchSpecStrategyGetArgs : Pulumi.ResourceArgs
+ {
+ ///
+ /// Defines the desired preemptible percentage for this launch specification.
+ ///
+ [Input("preemptiblePercentage")]
+ public Input? PreemptiblePercentage { get; set; }
+
+ public OceanLaunchSpecStrategyGetArgs()
+ {
+ }
+ }
+}
diff --git a/sdk/dotnet/Gke/OceanLaunchSpec.cs b/sdk/dotnet/Gke/OceanLaunchSpec.cs
index 23cc5c97..25b5c259 100644
--- a/sdk/dotnet/Gke/OceanLaunchSpec.cs
+++ b/sdk/dotnet/Gke/OceanLaunchSpec.cs
@@ -53,6 +53,13 @@ namespace Pulumi.SpotInst.Gke
/// OceanId = "o-123456",
/// RestrictScaleDown = true,
/// SourceImage = "image",
+ /// Strategies =
+ /// {
+ /// new SpotInst.Gke.Inputs.OceanLaunchSpecStrategyArgs
+ /// {
+ /// PreemptiblePercentage = 30,
+ /// },
+ /// },
/// Taints =
/// {
/// new SpotInst.Gke.Inputs.OceanLaunchSpecTaintArgs
@@ -104,7 +111,7 @@ public partial class OceanLaunchSpec : Pulumi.CustomResource
public Output> Metadatas { get; private set; } = null!;
///
- /// The Ocean cluster ID required for launchSpec create.
+ /// The Ocean cluster ID.
///
[Output("oceanId")]
public Output OceanId { get; private set; } = null!;
@@ -121,6 +128,12 @@ public partial class OceanLaunchSpec : Pulumi.CustomResource
[Output("sourceImage")]
public Output SourceImage { get; private set; } = null!;
+ ///
+ /// The Ocean Launch Spec Strategy object.
+ ///
+ [Output("strategies")]
+ public Output> Strategies { get; private set; } = null!;
+
///
/// Optionally adds labels to instances launched in an Ocean cluster.
///
@@ -210,7 +223,7 @@ public InputList Metadatas
}
///
- /// The Ocean cluster ID required for launchSpec create.
+ /// The Ocean cluster ID.
///
[Input("oceanId", required: true)]
public Input OceanId { get; set; } = null!;
@@ -227,6 +240,18 @@ public InputList Metadatas
[Input("sourceImage", required: true)]
public Input SourceImage { get; set; } = null!;
+ [Input("strategies")]
+ private InputList? _strategies;
+
+ ///
+ /// The Ocean Launch Spec Strategy object.
+ ///
+ public InputList Strategies
+ {
+ get => _strategies ?? (_strategies = new InputList());
+ set => _strategies = value;
+ }
+
[Input("taints")]
private InputList? _taints;
@@ -283,7 +308,7 @@ public InputList Metadatas
}
///
- /// The Ocean cluster ID required for launchSpec create.
+ /// The Ocean cluster ID.
///
[Input("oceanId")]
public Input? OceanId { get; set; }
@@ -300,6 +325,18 @@ public InputList Metadatas
[Input("sourceImage")]
public Input? SourceImage { get; set; }
+ [Input("strategies")]
+ private InputList? _strategies;
+
+ ///
+ /// The Ocean Launch Spec Strategy object.
+ ///
+ public InputList Strategies
+ {
+ get => _strategies ?? (_strategies = new InputList());
+ set => _strategies = value;
+ }
+
[Input("taints")]
private InputList? _taints;
diff --git a/sdk/dotnet/Gke/Outputs/OceanLaunchSpecStrategy.cs b/sdk/dotnet/Gke/Outputs/OceanLaunchSpecStrategy.cs
new file mode 100644
index 00000000..5696cf75
--- /dev/null
+++ b/sdk/dotnet/Gke/Outputs/OceanLaunchSpecStrategy.cs
@@ -0,0 +1,27 @@
+// *** WARNING: this file was generated by the Pulumi Terraform Bridge (tfgen) Tool. ***
+// *** Do not edit by hand unless you're certain you know what you are doing! ***
+
+using System;
+using System.Collections.Generic;
+using System.Collections.Immutable;
+using System.Threading.Tasks;
+using Pulumi.Serialization;
+
+namespace Pulumi.SpotInst.Gke.Outputs
+{
+
+ [OutputType]
+ public sealed class OceanLaunchSpecStrategy
+ {
+ ///
+ /// Defines the desired preemptible percentage for this launch specification.
+ ///
+ public readonly int? PreemptiblePercentage;
+
+ [OutputConstructor]
+ private OceanLaunchSpecStrategy(int? preemptiblePercentage)
+ {
+ PreemptiblePercentage = preemptiblePercentage;
+ }
+ }
+}
diff --git a/sdk/go/spotinst/aws/elastigroup.go b/sdk/go/spotinst/aws/elastigroup.go
index 9636fcec..d7615ab9 100644
--- a/sdk/go/spotinst/aws/elastigroup.go
+++ b/sdk/go/spotinst/aws/elastigroup.go
@@ -137,8 +137,9 @@ type Elastigroup struct {
ShutdownScript pulumi.StringPtrOutput `pulumi:"shutdownScript"`
Signals ElastigroupSignalArrayOutput `pulumi:"signals"`
// The percentage of Spot instances that would spin up from the `desiredCapacity` number.
- SpotPercentage pulumi.IntPtrOutput `pulumi:"spotPercentage"`
- StatefulDeallocation ElastigroupStatefulDeallocationPtrOutput `pulumi:"statefulDeallocation"`
+ SpotPercentage pulumi.IntPtrOutput `pulumi:"spotPercentage"`
+ StatefulDeallocation ElastigroupStatefulDeallocationPtrOutput `pulumi:"statefulDeallocation"`
+ StatefulInstanceActions ElastigroupStatefulInstanceActionArrayOutput `pulumi:"statefulInstanceActions"`
// List of Strings of subnet identifiers.
// Note: When this parameter is set, `availabilityZones` should be left unused.
SubnetIds pulumi.StringArrayOutput `pulumi:"subnetIds"`
@@ -327,8 +328,9 @@ type elastigroupState struct {
ShutdownScript *string `pulumi:"shutdownScript"`
Signals []ElastigroupSignal `pulumi:"signals"`
// The percentage of Spot instances that would spin up from the `desiredCapacity` number.
- SpotPercentage *int `pulumi:"spotPercentage"`
- StatefulDeallocation *ElastigroupStatefulDeallocation `pulumi:"statefulDeallocation"`
+ SpotPercentage *int `pulumi:"spotPercentage"`
+ StatefulDeallocation *ElastigroupStatefulDeallocation `pulumi:"statefulDeallocation"`
+ StatefulInstanceActions []ElastigroupStatefulInstanceAction `pulumi:"statefulInstanceActions"`
// List of Strings of subnet identifiers.
// Note: When this parameter is set, `availabilityZones` should be left unused.
SubnetIds []string `pulumi:"subnetIds"`
@@ -471,8 +473,9 @@ type ElastigroupState struct {
ShutdownScript pulumi.StringPtrInput
Signals ElastigroupSignalArrayInput
// The percentage of Spot instances that would spin up from the `desiredCapacity` number.
- SpotPercentage pulumi.IntPtrInput
- StatefulDeallocation ElastigroupStatefulDeallocationPtrInput
+ SpotPercentage pulumi.IntPtrInput
+ StatefulDeallocation ElastigroupStatefulDeallocationPtrInput
+ StatefulInstanceActions ElastigroupStatefulInstanceActionArrayInput
// List of Strings of subnet identifiers.
// Note: When this parameter is set, `availabilityZones` should be left unused.
SubnetIds pulumi.StringArrayInput
@@ -619,8 +622,9 @@ type elastigroupArgs struct {
ShutdownScript *string `pulumi:"shutdownScript"`
Signals []ElastigroupSignal `pulumi:"signals"`
// The percentage of Spot instances that would spin up from the `desiredCapacity` number.
- SpotPercentage *int `pulumi:"spotPercentage"`
- StatefulDeallocation *ElastigroupStatefulDeallocation `pulumi:"statefulDeallocation"`
+ SpotPercentage *int `pulumi:"spotPercentage"`
+ StatefulDeallocation *ElastigroupStatefulDeallocation `pulumi:"statefulDeallocation"`
+ StatefulInstanceActions []ElastigroupStatefulInstanceAction `pulumi:"statefulInstanceActions"`
// List of Strings of subnet identifiers.
// Note: When this parameter is set, `availabilityZones` should be left unused.
SubnetIds []string `pulumi:"subnetIds"`
@@ -764,8 +768,9 @@ type ElastigroupArgs struct {
ShutdownScript pulumi.StringPtrInput
Signals ElastigroupSignalArrayInput
// The percentage of Spot instances that would spin up from the `desiredCapacity` number.
- SpotPercentage pulumi.IntPtrInput
- StatefulDeallocation ElastigroupStatefulDeallocationPtrInput
+ SpotPercentage pulumi.IntPtrInput
+ StatefulDeallocation ElastigroupStatefulDeallocationPtrInput
+ StatefulInstanceActions ElastigroupStatefulInstanceActionArrayInput
// List of Strings of subnet identifiers.
// Note: When this parameter is set, `availabilityZones` should be left unused.
SubnetIds pulumi.StringArrayInput
diff --git a/sdk/go/spotinst/aws/managedInstance.go b/sdk/go/spotinst/aws/managedInstance.go
index 20855e0a..244aefce 100644
--- a/sdk/go/spotinst/aws/managedInstance.go
+++ b/sdk/go/spotinst/aws/managedInstance.go
@@ -56,7 +56,8 @@ type ManagedInstance struct {
// Default `"spot"`.
LifeCycle pulumi.StringPtrOutput `pulumi:"lifeCycle"`
// List of load balancers configs.
- LoadBalancers ManagedInstanceLoadBalancerArrayOutput `pulumi:"loadBalancers"`
+ LoadBalancers ManagedInstanceLoadBalancerArrayOutput `pulumi:"loadBalancers"`
+ MinimumInstanceLifetime pulumi.IntPtrOutput `pulumi:"minimumInstanceLifetime"`
// The record set name.
Name pulumi.StringOutput `pulumi:"name"`
NetworkInterfaces ManagedInstanceNetworkInterfaceArrayOutput `pulumi:"networkInterfaces"`
@@ -190,7 +191,8 @@ type managedInstanceState struct {
// Default `"spot"`.
LifeCycle *string `pulumi:"lifeCycle"`
// List of load balancers configs.
- LoadBalancers []ManagedInstanceLoadBalancer `pulumi:"loadBalancers"`
+ LoadBalancers []ManagedInstanceLoadBalancer `pulumi:"loadBalancers"`
+ MinimumInstanceLifetime *int `pulumi:"minimumInstanceLifetime"`
// The record set name.
Name *string `pulumi:"name"`
NetworkInterfaces []ManagedInstanceNetworkInterface `pulumi:"networkInterfaces"`
@@ -278,7 +280,8 @@ type ManagedInstanceState struct {
// Default `"spot"`.
LifeCycle pulumi.StringPtrInput
// List of load balancers configs.
- LoadBalancers ManagedInstanceLoadBalancerArrayInput
+ LoadBalancers ManagedInstanceLoadBalancerArrayInput
+ MinimumInstanceLifetime pulumi.IntPtrInput
// The record set name.
Name pulumi.StringPtrInput
NetworkInterfaces ManagedInstanceNetworkInterfaceArrayInput
@@ -370,7 +373,8 @@ type managedInstanceArgs struct {
// Default `"spot"`.
LifeCycle *string `pulumi:"lifeCycle"`
// List of load balancers configs.
- LoadBalancers []ManagedInstanceLoadBalancer `pulumi:"loadBalancers"`
+ LoadBalancers []ManagedInstanceLoadBalancer `pulumi:"loadBalancers"`
+ MinimumInstanceLifetime *int `pulumi:"minimumInstanceLifetime"`
// The record set name.
Name *string `pulumi:"name"`
NetworkInterfaces []ManagedInstanceNetworkInterface `pulumi:"networkInterfaces"`
@@ -459,7 +463,8 @@ type ManagedInstanceArgs struct {
// Default `"spot"`.
LifeCycle pulumi.StringPtrInput
// List of load balancers configs.
- LoadBalancers ManagedInstanceLoadBalancerArrayInput
+ LoadBalancers ManagedInstanceLoadBalancerArrayInput
+ MinimumInstanceLifetime pulumi.IntPtrInput
// The record set name.
Name pulumi.StringPtrInput
NetworkInterfaces ManagedInstanceNetworkInterfaceArrayInput
diff --git a/sdk/go/spotinst/aws/oceanLaunchSpec.go b/sdk/go/spotinst/aws/oceanLaunchSpec.go
index eaa6438c..e17014fd 100644
--- a/sdk/go/spotinst/aws/oceanLaunchSpec.go
+++ b/sdk/go/spotinst/aws/oceanLaunchSpec.go
@@ -52,6 +52,9 @@ import (
// },
// },
// },
+// CreateOptions: &aws.OceanLaunchSpecCreateOptionsArgs{
+// InitialNodes: pulumi.Int(1),
+// },
// ElasticIpPools: aws.OceanLaunchSpecElasticIpPoolArray{
// &aws.OceanLaunchSpecElasticIpPoolArgs{
// TagSelector: &aws.OceanLaunchSpecElasticIpPoolTagSelectorArgs{
@@ -138,6 +141,7 @@ type OceanLaunchSpec struct {
AutoscaleHeadrooms OceanLaunchSpecAutoscaleHeadroomArrayOutput `pulumi:"autoscaleHeadrooms"`
// Object. Array list of block devices that are exposed to the instance, specify either virtual devices and EBS volumes.
BlockDeviceMappings OceanLaunchSpecBlockDeviceMappingArrayOutput `pulumi:"blockDeviceMappings"`
+ CreateOptions OceanLaunchSpecCreateOptionsPtrOutput `pulumi:"createOptions"`
// Assign an Elastic IP to the instances spun by the Virtual Node Group. Can be null.
ElasticIpPools OceanLaunchSpecElasticIpPoolArrayOutput `pulumi:"elasticIpPools"`
// The ARN or name of an IAM instance profile to associate with launched instances.
@@ -208,6 +212,7 @@ type oceanLaunchSpecState struct {
AutoscaleHeadrooms []OceanLaunchSpecAutoscaleHeadroom `pulumi:"autoscaleHeadrooms"`
// Object. Array list of block devices that are exposed to the instance, specify either virtual devices and EBS volumes.
BlockDeviceMappings []OceanLaunchSpecBlockDeviceMapping `pulumi:"blockDeviceMappings"`
+ CreateOptions *OceanLaunchSpecCreateOptions `pulumi:"createOptions"`
// Assign an Elastic IP to the instances spun by the Virtual Node Group. Can be null.
ElasticIpPools []OceanLaunchSpecElasticIpPool `pulumi:"elasticIpPools"`
// The ARN or name of an IAM instance profile to associate with launched instances.
@@ -247,6 +252,7 @@ type OceanLaunchSpecState struct {
AutoscaleHeadrooms OceanLaunchSpecAutoscaleHeadroomArrayInput
// Object. Array list of block devices that are exposed to the instance, specify either virtual devices and EBS volumes.
BlockDeviceMappings OceanLaunchSpecBlockDeviceMappingArrayInput
+ CreateOptions OceanLaunchSpecCreateOptionsPtrInput
// Assign an Elastic IP to the instances spun by the Virtual Node Group. Can be null.
ElasticIpPools OceanLaunchSpecElasticIpPoolArrayInput
// The ARN or name of an IAM instance profile to associate with launched instances.
@@ -290,6 +296,7 @@ type oceanLaunchSpecArgs struct {
AutoscaleHeadrooms []OceanLaunchSpecAutoscaleHeadroom `pulumi:"autoscaleHeadrooms"`
// Object. Array list of block devices that are exposed to the instance, specify either virtual devices and EBS volumes.
BlockDeviceMappings []OceanLaunchSpecBlockDeviceMapping `pulumi:"blockDeviceMappings"`
+ CreateOptions *OceanLaunchSpecCreateOptions `pulumi:"createOptions"`
// Assign an Elastic IP to the instances spun by the Virtual Node Group. Can be null.
ElasticIpPools []OceanLaunchSpecElasticIpPool `pulumi:"elasticIpPools"`
// The ARN or name of an IAM instance profile to associate with launched instances.
@@ -330,6 +337,7 @@ type OceanLaunchSpecArgs struct {
AutoscaleHeadrooms OceanLaunchSpecAutoscaleHeadroomArrayInput
// Object. Array list of block devices that are exposed to the instance, specify either virtual devices and EBS volumes.
BlockDeviceMappings OceanLaunchSpecBlockDeviceMappingArrayInput
+ CreateOptions OceanLaunchSpecCreateOptionsPtrInput
// Assign an Elastic IP to the instances spun by the Virtual Node Group. Can be null.
ElasticIpPools OceanLaunchSpecElasticIpPoolArrayInput
// The ARN or name of an IAM instance profile to associate with launched instances.
diff --git a/sdk/go/spotinst/aws/pulumiTypes.go b/sdk/go/spotinst/aws/pulumiTypes.go
index 9faa4118..1d7330a3 100644
--- a/sdk/go/spotinst/aws/pulumiTypes.go
+++ b/sdk/go/spotinst/aws/pulumiTypes.go
@@ -8545,6 +8545,112 @@ func (o ElastigroupStatefulDeallocationPtrOutput) ShouldDeleteVolumes() pulumi.B
}).(pulumi.BoolPtrOutput)
}
+type ElastigroupStatefulInstanceAction struct {
+ // String, Stateful Instance ID on which the action should be performed.
+ StatefulInstanceId string `pulumi:"statefulInstanceId"`
+ // String, Action type. Supported action types: `pause`, `resume`, `recycle`, `deallocate`.
+ Type string `pulumi:"type"`
+}
+
+// ElastigroupStatefulInstanceActionInput is an input type that accepts ElastigroupStatefulInstanceActionArgs and ElastigroupStatefulInstanceActionOutput values.
+// You can construct a concrete instance of `ElastigroupStatefulInstanceActionInput` via:
+//
+// ElastigroupStatefulInstanceActionArgs{...}
+type ElastigroupStatefulInstanceActionInput interface {
+ pulumi.Input
+
+ ToElastigroupStatefulInstanceActionOutput() ElastigroupStatefulInstanceActionOutput
+ ToElastigroupStatefulInstanceActionOutputWithContext(context.Context) ElastigroupStatefulInstanceActionOutput
+}
+
+type ElastigroupStatefulInstanceActionArgs struct {
+ // String, Stateful Instance ID on which the action should be performed.
+ StatefulInstanceId pulumi.StringInput `pulumi:"statefulInstanceId"`
+ // String, Action type. Supported action types: `pause`, `resume`, `recycle`, `deallocate`.
+ Type pulumi.StringInput `pulumi:"type"`
+}
+
+func (ElastigroupStatefulInstanceActionArgs) ElementType() reflect.Type {
+ return reflect.TypeOf((*ElastigroupStatefulInstanceAction)(nil)).Elem()
+}
+
+func (i ElastigroupStatefulInstanceActionArgs) ToElastigroupStatefulInstanceActionOutput() ElastigroupStatefulInstanceActionOutput {
+ return i.ToElastigroupStatefulInstanceActionOutputWithContext(context.Background())
+}
+
+func (i ElastigroupStatefulInstanceActionArgs) ToElastigroupStatefulInstanceActionOutputWithContext(ctx context.Context) ElastigroupStatefulInstanceActionOutput {
+ return pulumi.ToOutputWithContext(ctx, i).(ElastigroupStatefulInstanceActionOutput)
+}
+
+// ElastigroupStatefulInstanceActionArrayInput is an input type that accepts ElastigroupStatefulInstanceActionArray and ElastigroupStatefulInstanceActionArrayOutput values.
+// You can construct a concrete instance of `ElastigroupStatefulInstanceActionArrayInput` via:
+//
+// ElastigroupStatefulInstanceActionArray{ ElastigroupStatefulInstanceActionArgs{...} }
+type ElastigroupStatefulInstanceActionArrayInput interface {
+ pulumi.Input
+
+ ToElastigroupStatefulInstanceActionArrayOutput() ElastigroupStatefulInstanceActionArrayOutput
+ ToElastigroupStatefulInstanceActionArrayOutputWithContext(context.Context) ElastigroupStatefulInstanceActionArrayOutput
+}
+
+type ElastigroupStatefulInstanceActionArray []ElastigroupStatefulInstanceActionInput
+
+func (ElastigroupStatefulInstanceActionArray) ElementType() reflect.Type {
+ return reflect.TypeOf((*[]ElastigroupStatefulInstanceAction)(nil)).Elem()
+}
+
+func (i ElastigroupStatefulInstanceActionArray) ToElastigroupStatefulInstanceActionArrayOutput() ElastigroupStatefulInstanceActionArrayOutput {
+ return i.ToElastigroupStatefulInstanceActionArrayOutputWithContext(context.Background())
+}
+
+func (i ElastigroupStatefulInstanceActionArray) ToElastigroupStatefulInstanceActionArrayOutputWithContext(ctx context.Context) ElastigroupStatefulInstanceActionArrayOutput {
+ return pulumi.ToOutputWithContext(ctx, i).(ElastigroupStatefulInstanceActionArrayOutput)
+}
+
+type ElastigroupStatefulInstanceActionOutput struct{ *pulumi.OutputState }
+
+func (ElastigroupStatefulInstanceActionOutput) ElementType() reflect.Type {
+ return reflect.TypeOf((*ElastigroupStatefulInstanceAction)(nil)).Elem()
+}
+
+func (o ElastigroupStatefulInstanceActionOutput) ToElastigroupStatefulInstanceActionOutput() ElastigroupStatefulInstanceActionOutput {
+ return o
+}
+
+func (o ElastigroupStatefulInstanceActionOutput) ToElastigroupStatefulInstanceActionOutputWithContext(ctx context.Context) ElastigroupStatefulInstanceActionOutput {
+ return o
+}
+
+// String, Stateful Instance ID on which the action should be performed.
+func (o ElastigroupStatefulInstanceActionOutput) StatefulInstanceId() pulumi.StringOutput {
+ return o.ApplyT(func(v ElastigroupStatefulInstanceAction) string { return v.StatefulInstanceId }).(pulumi.StringOutput)
+}
+
+// String, Action type. Supported action types: `pause`, `resume`, `recycle`, `deallocate`.
+func (o ElastigroupStatefulInstanceActionOutput) Type() pulumi.StringOutput {
+ return o.ApplyT(func(v ElastigroupStatefulInstanceAction) string { return v.Type }).(pulumi.StringOutput)
+}
+
+type ElastigroupStatefulInstanceActionArrayOutput struct{ *pulumi.OutputState }
+
+func (ElastigroupStatefulInstanceActionArrayOutput) ElementType() reflect.Type {
+ return reflect.TypeOf((*[]ElastigroupStatefulInstanceAction)(nil)).Elem()
+}
+
+func (o ElastigroupStatefulInstanceActionArrayOutput) ToElastigroupStatefulInstanceActionArrayOutput() ElastigroupStatefulInstanceActionArrayOutput {
+ return o
+}
+
+func (o ElastigroupStatefulInstanceActionArrayOutput) ToElastigroupStatefulInstanceActionArrayOutputWithContext(ctx context.Context) ElastigroupStatefulInstanceActionArrayOutput {
+ return o
+}
+
+func (o ElastigroupStatefulInstanceActionArrayOutput) Index(i pulumi.IntInput) ElastigroupStatefulInstanceActionOutput {
+ return pulumi.All(o, i).ApplyT(func(vs []interface{}) ElastigroupStatefulInstanceAction {
+ return vs[0].([]ElastigroupStatefulInstanceAction)[vs[1].(int)]
+ }).(ElastigroupStatefulInstanceActionOutput)
+}
+
type ElastigroupTag struct {
Key *string `pulumi:"key"`
// The dimension value.
@@ -14798,6 +14904,137 @@ func (o OceanLaunchSpecBlockDeviceMappingEbsDynamicVolumeSizePtrOutput) SizePerR
}).(pulumi.IntPtrOutput)
}
+type OceanLaunchSpecCreateOptions struct {
+ // When set to an integer greater than 0, a corresponding amount of nodes will be launched from the created virtual node group.
+ InitialNodes int `pulumi:"initialNodes"`
+}
+
+// OceanLaunchSpecCreateOptionsInput is an input type that accepts OceanLaunchSpecCreateOptionsArgs and OceanLaunchSpecCreateOptionsOutput values.
+// You can construct a concrete instance of `OceanLaunchSpecCreateOptionsInput` via:
+//
+// OceanLaunchSpecCreateOptionsArgs{...}
+type OceanLaunchSpecCreateOptionsInput interface {
+ pulumi.Input
+
+ ToOceanLaunchSpecCreateOptionsOutput() OceanLaunchSpecCreateOptionsOutput
+ ToOceanLaunchSpecCreateOptionsOutputWithContext(context.Context) OceanLaunchSpecCreateOptionsOutput
+}
+
+type OceanLaunchSpecCreateOptionsArgs struct {
+ // When set to an integer greater than 0, a corresponding amount of nodes will be launched from the created virtual node group.
+ InitialNodes pulumi.IntInput `pulumi:"initialNodes"`
+}
+
+func (OceanLaunchSpecCreateOptionsArgs) ElementType() reflect.Type {
+ return reflect.TypeOf((*OceanLaunchSpecCreateOptions)(nil)).Elem()
+}
+
+func (i OceanLaunchSpecCreateOptionsArgs) ToOceanLaunchSpecCreateOptionsOutput() OceanLaunchSpecCreateOptionsOutput {
+ return i.ToOceanLaunchSpecCreateOptionsOutputWithContext(context.Background())
+}
+
+func (i OceanLaunchSpecCreateOptionsArgs) ToOceanLaunchSpecCreateOptionsOutputWithContext(ctx context.Context) OceanLaunchSpecCreateOptionsOutput {
+ return pulumi.ToOutputWithContext(ctx, i).(OceanLaunchSpecCreateOptionsOutput)
+}
+
+func (i OceanLaunchSpecCreateOptionsArgs) ToOceanLaunchSpecCreateOptionsPtrOutput() OceanLaunchSpecCreateOptionsPtrOutput {
+ return i.ToOceanLaunchSpecCreateOptionsPtrOutputWithContext(context.Background())
+}
+
+func (i OceanLaunchSpecCreateOptionsArgs) ToOceanLaunchSpecCreateOptionsPtrOutputWithContext(ctx context.Context) OceanLaunchSpecCreateOptionsPtrOutput {
+ return pulumi.ToOutputWithContext(ctx, i).(OceanLaunchSpecCreateOptionsOutput).ToOceanLaunchSpecCreateOptionsPtrOutputWithContext(ctx)
+}
+
+// OceanLaunchSpecCreateOptionsPtrInput is an input type that accepts OceanLaunchSpecCreateOptionsArgs, OceanLaunchSpecCreateOptionsPtr and OceanLaunchSpecCreateOptionsPtrOutput values.
+// You can construct a concrete instance of `OceanLaunchSpecCreateOptionsPtrInput` via:
+//
+// OceanLaunchSpecCreateOptionsArgs{...}
+//
+// or:
+//
+// nil
+type OceanLaunchSpecCreateOptionsPtrInput interface {
+ pulumi.Input
+
+ ToOceanLaunchSpecCreateOptionsPtrOutput() OceanLaunchSpecCreateOptionsPtrOutput
+ ToOceanLaunchSpecCreateOptionsPtrOutputWithContext(context.Context) OceanLaunchSpecCreateOptionsPtrOutput
+}
+
+type oceanLaunchSpecCreateOptionsPtrType OceanLaunchSpecCreateOptionsArgs
+
+func OceanLaunchSpecCreateOptionsPtr(v *OceanLaunchSpecCreateOptionsArgs) OceanLaunchSpecCreateOptionsPtrInput {
+ return (*oceanLaunchSpecCreateOptionsPtrType)(v)
+}
+
+func (*oceanLaunchSpecCreateOptionsPtrType) ElementType() reflect.Type {
+ return reflect.TypeOf((**OceanLaunchSpecCreateOptions)(nil)).Elem()
+}
+
+func (i *oceanLaunchSpecCreateOptionsPtrType) ToOceanLaunchSpecCreateOptionsPtrOutput() OceanLaunchSpecCreateOptionsPtrOutput {
+ return i.ToOceanLaunchSpecCreateOptionsPtrOutputWithContext(context.Background())
+}
+
+func (i *oceanLaunchSpecCreateOptionsPtrType) ToOceanLaunchSpecCreateOptionsPtrOutputWithContext(ctx context.Context) OceanLaunchSpecCreateOptionsPtrOutput {
+ return pulumi.ToOutputWithContext(ctx, i).(OceanLaunchSpecCreateOptionsPtrOutput)
+}
+
+type OceanLaunchSpecCreateOptionsOutput struct{ *pulumi.OutputState }
+
+func (OceanLaunchSpecCreateOptionsOutput) ElementType() reflect.Type {
+ return reflect.TypeOf((*OceanLaunchSpecCreateOptions)(nil)).Elem()
+}
+
+func (o OceanLaunchSpecCreateOptionsOutput) ToOceanLaunchSpecCreateOptionsOutput() OceanLaunchSpecCreateOptionsOutput {
+ return o
+}
+
+func (o OceanLaunchSpecCreateOptionsOutput) ToOceanLaunchSpecCreateOptionsOutputWithContext(ctx context.Context) OceanLaunchSpecCreateOptionsOutput {
+ return o
+}
+
+func (o OceanLaunchSpecCreateOptionsOutput) ToOceanLaunchSpecCreateOptionsPtrOutput() OceanLaunchSpecCreateOptionsPtrOutput {
+ return o.ToOceanLaunchSpecCreateOptionsPtrOutputWithContext(context.Background())
+}
+
+func (o OceanLaunchSpecCreateOptionsOutput) ToOceanLaunchSpecCreateOptionsPtrOutputWithContext(ctx context.Context) OceanLaunchSpecCreateOptionsPtrOutput {
+ return o.ApplyT(func(v OceanLaunchSpecCreateOptions) *OceanLaunchSpecCreateOptions {
+ return &v
+ }).(OceanLaunchSpecCreateOptionsPtrOutput)
+}
+
+// When set to an integer greater than 0, a corresponding amount of nodes will be launched from the created virtual node group.
+func (o OceanLaunchSpecCreateOptionsOutput) InitialNodes() pulumi.IntOutput {
+ return o.ApplyT(func(v OceanLaunchSpecCreateOptions) int { return v.InitialNodes }).(pulumi.IntOutput)
+}
+
+type OceanLaunchSpecCreateOptionsPtrOutput struct{ *pulumi.OutputState }
+
+func (OceanLaunchSpecCreateOptionsPtrOutput) ElementType() reflect.Type {
+ return reflect.TypeOf((**OceanLaunchSpecCreateOptions)(nil)).Elem()
+}
+
+func (o OceanLaunchSpecCreateOptionsPtrOutput) ToOceanLaunchSpecCreateOptionsPtrOutput() OceanLaunchSpecCreateOptionsPtrOutput {
+ return o
+}
+
+func (o OceanLaunchSpecCreateOptionsPtrOutput) ToOceanLaunchSpecCreateOptionsPtrOutputWithContext(ctx context.Context) OceanLaunchSpecCreateOptionsPtrOutput {
+ return o
+}
+
+func (o OceanLaunchSpecCreateOptionsPtrOutput) Elem() OceanLaunchSpecCreateOptionsOutput {
+ return o.ApplyT(func(v *OceanLaunchSpecCreateOptions) OceanLaunchSpecCreateOptions { return *v }).(OceanLaunchSpecCreateOptionsOutput)
+}
+
+// When set to an integer greater than 0, a corresponding amount of nodes will be launched from the created virtual node group.
+func (o OceanLaunchSpecCreateOptionsPtrOutput) InitialNodes() pulumi.IntPtrOutput {
+ return o.ApplyT(func(v *OceanLaunchSpecCreateOptions) *int {
+ if v == nil {
+ return nil
+ }
+ return &v.InitialNodes
+ }).(pulumi.IntPtrOutput)
+}
+
type OceanLaunchSpecElasticIpPool struct {
// A key-value pair, which defines an Elastic IP from the customer pool. Can be null.
TagSelector *OceanLaunchSpecElasticIpPoolTagSelector `pulumi:"tagSelector"`
@@ -16645,6 +16882,8 @@ func init() {
pulumi.RegisterOutputType(ElastigroupSignalArrayOutput{})
pulumi.RegisterOutputType(ElastigroupStatefulDeallocationOutput{})
pulumi.RegisterOutputType(ElastigroupStatefulDeallocationPtrOutput{})
+ pulumi.RegisterOutputType(ElastigroupStatefulInstanceActionOutput{})
+ pulumi.RegisterOutputType(ElastigroupStatefulInstanceActionArrayOutput{})
pulumi.RegisterOutputType(ElastigroupTagOutput{})
pulumi.RegisterOutputType(ElastigroupTagArrayOutput{})
pulumi.RegisterOutputType(ElastigroupUpdatePolicyOutput{})
@@ -16725,6 +16964,8 @@ func init() {
pulumi.RegisterOutputType(OceanLaunchSpecBlockDeviceMappingEbsPtrOutput{})
pulumi.RegisterOutputType(OceanLaunchSpecBlockDeviceMappingEbsDynamicVolumeSizeOutput{})
pulumi.RegisterOutputType(OceanLaunchSpecBlockDeviceMappingEbsDynamicVolumeSizePtrOutput{})
+ pulumi.RegisterOutputType(OceanLaunchSpecCreateOptionsOutput{})
+ pulumi.RegisterOutputType(OceanLaunchSpecCreateOptionsPtrOutput{})
pulumi.RegisterOutputType(OceanLaunchSpecElasticIpPoolOutput{})
pulumi.RegisterOutputType(OceanLaunchSpecElasticIpPoolArrayOutput{})
pulumi.RegisterOutputType(OceanLaunchSpecElasticIpPoolTagSelectorOutput{})
diff --git a/sdk/go/spotinst/gke/oceanLaunchSpec.go b/sdk/go/spotinst/gke/oceanLaunchSpec.go
index 616b2f02..2bac133f 100644
--- a/sdk/go/spotinst/gke/oceanLaunchSpec.go
+++ b/sdk/go/spotinst/gke/oceanLaunchSpec.go
@@ -49,6 +49,11 @@ import (
// OceanId: pulumi.String("o-123456"),
// RestrictScaleDown: pulumi.Bool(true),
// SourceImage: pulumi.String("image"),
+// Strategies: gke.OceanLaunchSpecStrategyArray{
+// &gke.OceanLaunchSpecStrategyArgs{
+// PreemptiblePercentage: pulumi.Int(30),
+// },
+// },
// Taints: gke.OceanLaunchSpecTaintArray{
// &gke.OceanLaunchSpecTaintArgs{
// Effect: pulumi.String("taintEffect"),
@@ -87,12 +92,14 @@ type OceanLaunchSpec struct {
Labels OceanLaunchSpecLabelArrayOutput `pulumi:"labels"`
// Cluster's metadata.
Metadatas OceanLaunchSpecMetadataArrayOutput `pulumi:"metadatas"`
- // The Ocean cluster ID required for launchSpec create.
+ // The Ocean cluster ID.
OceanId pulumi.StringOutput `pulumi:"oceanId"`
// Boolean. When set to `true`, VNG nodes will be treated as if all pods running have the restrict-scale-down label. Therefore, Ocean will not scale nodes down unless empty.
RestrictScaleDown pulumi.BoolPtrOutput `pulumi:"restrictScaleDown"`
// Image URL.
SourceImage pulumi.StringOutput `pulumi:"sourceImage"`
+ // The Ocean Launch Spec Strategy object.
+ Strategies OceanLaunchSpecStrategyArrayOutput `pulumi:"strategies"`
// Optionally adds labels to instances launched in an Ocean cluster.
Taints OceanLaunchSpecTaintArrayOutput `pulumi:"taints"`
}
@@ -141,12 +148,14 @@ type oceanLaunchSpecState struct {
Labels []OceanLaunchSpecLabel `pulumi:"labels"`
// Cluster's metadata.
Metadatas []OceanLaunchSpecMetadata `pulumi:"metadatas"`
- // The Ocean cluster ID required for launchSpec create.
+ // The Ocean cluster ID.
OceanId *string `pulumi:"oceanId"`
// Boolean. When set to `true`, VNG nodes will be treated as if all pods running have the restrict-scale-down label. Therefore, Ocean will not scale nodes down unless empty.
RestrictScaleDown *bool `pulumi:"restrictScaleDown"`
// Image URL.
SourceImage *string `pulumi:"sourceImage"`
+ // The Ocean Launch Spec Strategy object.
+ Strategies []OceanLaunchSpecStrategy `pulumi:"strategies"`
// Optionally adds labels to instances launched in an Ocean cluster.
Taints []OceanLaunchSpecTaint `pulumi:"taints"`
}
@@ -158,12 +167,14 @@ type OceanLaunchSpecState struct {
Labels OceanLaunchSpecLabelArrayInput
// Cluster's metadata.
Metadatas OceanLaunchSpecMetadataArrayInput
- // The Ocean cluster ID required for launchSpec create.
+ // The Ocean cluster ID.
OceanId pulumi.StringPtrInput
// Boolean. When set to `true`, VNG nodes will be treated as if all pods running have the restrict-scale-down label. Therefore, Ocean will not scale nodes down unless empty.
RestrictScaleDown pulumi.BoolPtrInput
// Image URL.
SourceImage pulumi.StringPtrInput
+ // The Ocean Launch Spec Strategy object.
+ Strategies OceanLaunchSpecStrategyArrayInput
// Optionally adds labels to instances launched in an Ocean cluster.
Taints OceanLaunchSpecTaintArrayInput
}
@@ -179,12 +190,14 @@ type oceanLaunchSpecArgs struct {
Labels []OceanLaunchSpecLabel `pulumi:"labels"`
// Cluster's metadata.
Metadatas []OceanLaunchSpecMetadata `pulumi:"metadatas"`
- // The Ocean cluster ID required for launchSpec create.
+ // The Ocean cluster ID.
OceanId string `pulumi:"oceanId"`
// Boolean. When set to `true`, VNG nodes will be treated as if all pods running have the restrict-scale-down label. Therefore, Ocean will not scale nodes down unless empty.
RestrictScaleDown *bool `pulumi:"restrictScaleDown"`
// Image URL.
SourceImage string `pulumi:"sourceImage"`
+ // The Ocean Launch Spec Strategy object.
+ Strategies []OceanLaunchSpecStrategy `pulumi:"strategies"`
// Optionally adds labels to instances launched in an Ocean cluster.
Taints []OceanLaunchSpecTaint `pulumi:"taints"`
}
@@ -197,12 +210,14 @@ type OceanLaunchSpecArgs struct {
Labels OceanLaunchSpecLabelArrayInput
// Cluster's metadata.
Metadatas OceanLaunchSpecMetadataArrayInput
- // The Ocean cluster ID required for launchSpec create.
+ // The Ocean cluster ID.
OceanId pulumi.StringInput
// Boolean. When set to `true`, VNG nodes will be treated as if all pods running have the restrict-scale-down label. Therefore, Ocean will not scale nodes down unless empty.
RestrictScaleDown pulumi.BoolPtrInput
// Image URL.
SourceImage pulumi.StringInput
+ // The Ocean Launch Spec Strategy object.
+ Strategies OceanLaunchSpecStrategyArrayInput
// Optionally adds labels to instances launched in an Ocean cluster.
Taints OceanLaunchSpecTaintArrayInput
}
diff --git a/sdk/go/spotinst/gke/pulumiTypes.go b/sdk/go/spotinst/gke/pulumiTypes.go
index 5963c869..f29cd9b5 100644
--- a/sdk/go/spotinst/gke/pulumiTypes.go
+++ b/sdk/go/spotinst/gke/pulumiTypes.go
@@ -4246,6 +4246,103 @@ func (o OceanLaunchSpecMetadataArrayOutput) Index(i pulumi.IntInput) OceanLaunch
}).(OceanLaunchSpecMetadataOutput)
}
+type OceanLaunchSpecStrategy struct {
+ // Defines the desired preemptible percentage for this launch specification.
+ PreemptiblePercentage *int `pulumi:"preemptiblePercentage"`
+}
+
+// OceanLaunchSpecStrategyInput is an input type that accepts OceanLaunchSpecStrategyArgs and OceanLaunchSpecStrategyOutput values.
+// You can construct a concrete instance of `OceanLaunchSpecStrategyInput` via:
+//
+// OceanLaunchSpecStrategyArgs{...}
+type OceanLaunchSpecStrategyInput interface {
+ pulumi.Input
+
+ ToOceanLaunchSpecStrategyOutput() OceanLaunchSpecStrategyOutput
+ ToOceanLaunchSpecStrategyOutputWithContext(context.Context) OceanLaunchSpecStrategyOutput
+}
+
+type OceanLaunchSpecStrategyArgs struct {
+ // Defines the desired preemptible percentage for this launch specification.
+ PreemptiblePercentage pulumi.IntPtrInput `pulumi:"preemptiblePercentage"`
+}
+
+func (OceanLaunchSpecStrategyArgs) ElementType() reflect.Type {
+ return reflect.TypeOf((*OceanLaunchSpecStrategy)(nil)).Elem()
+}
+
+func (i OceanLaunchSpecStrategyArgs) ToOceanLaunchSpecStrategyOutput() OceanLaunchSpecStrategyOutput {
+ return i.ToOceanLaunchSpecStrategyOutputWithContext(context.Background())
+}
+
+func (i OceanLaunchSpecStrategyArgs) ToOceanLaunchSpecStrategyOutputWithContext(ctx context.Context) OceanLaunchSpecStrategyOutput {
+ return pulumi.ToOutputWithContext(ctx, i).(OceanLaunchSpecStrategyOutput)
+}
+
+// OceanLaunchSpecStrategyArrayInput is an input type that accepts OceanLaunchSpecStrategyArray and OceanLaunchSpecStrategyArrayOutput values.
+// You can construct a concrete instance of `OceanLaunchSpecStrategyArrayInput` via:
+//
+// OceanLaunchSpecStrategyArray{ OceanLaunchSpecStrategyArgs{...} }
+type OceanLaunchSpecStrategyArrayInput interface {
+ pulumi.Input
+
+ ToOceanLaunchSpecStrategyArrayOutput() OceanLaunchSpecStrategyArrayOutput
+ ToOceanLaunchSpecStrategyArrayOutputWithContext(context.Context) OceanLaunchSpecStrategyArrayOutput
+}
+
+type OceanLaunchSpecStrategyArray []OceanLaunchSpecStrategyInput
+
+func (OceanLaunchSpecStrategyArray) ElementType() reflect.Type {
+ return reflect.TypeOf((*[]OceanLaunchSpecStrategy)(nil)).Elem()
+}
+
+func (i OceanLaunchSpecStrategyArray) ToOceanLaunchSpecStrategyArrayOutput() OceanLaunchSpecStrategyArrayOutput {
+ return i.ToOceanLaunchSpecStrategyArrayOutputWithContext(context.Background())
+}
+
+func (i OceanLaunchSpecStrategyArray) ToOceanLaunchSpecStrategyArrayOutputWithContext(ctx context.Context) OceanLaunchSpecStrategyArrayOutput {
+ return pulumi.ToOutputWithContext(ctx, i).(OceanLaunchSpecStrategyArrayOutput)
+}
+
+type OceanLaunchSpecStrategyOutput struct{ *pulumi.OutputState }
+
+func (OceanLaunchSpecStrategyOutput) ElementType() reflect.Type {
+ return reflect.TypeOf((*OceanLaunchSpecStrategy)(nil)).Elem()
+}
+
+func (o OceanLaunchSpecStrategyOutput) ToOceanLaunchSpecStrategyOutput() OceanLaunchSpecStrategyOutput {
+ return o
+}
+
+func (o OceanLaunchSpecStrategyOutput) ToOceanLaunchSpecStrategyOutputWithContext(ctx context.Context) OceanLaunchSpecStrategyOutput {
+ return o
+}
+
+// Defines the desired preemptible percentage for this launch specification.
+func (o OceanLaunchSpecStrategyOutput) PreemptiblePercentage() pulumi.IntPtrOutput {
+ return o.ApplyT(func(v OceanLaunchSpecStrategy) *int { return v.PreemptiblePercentage }).(pulumi.IntPtrOutput)
+}
+
+type OceanLaunchSpecStrategyArrayOutput struct{ *pulumi.OutputState }
+
+func (OceanLaunchSpecStrategyArrayOutput) ElementType() reflect.Type {
+ return reflect.TypeOf((*[]OceanLaunchSpecStrategy)(nil)).Elem()
+}
+
+func (o OceanLaunchSpecStrategyArrayOutput) ToOceanLaunchSpecStrategyArrayOutput() OceanLaunchSpecStrategyArrayOutput {
+ return o
+}
+
+func (o OceanLaunchSpecStrategyArrayOutput) ToOceanLaunchSpecStrategyArrayOutputWithContext(ctx context.Context) OceanLaunchSpecStrategyArrayOutput {
+ return o
+}
+
+func (o OceanLaunchSpecStrategyArrayOutput) Index(i pulumi.IntInput) OceanLaunchSpecStrategyOutput {
+ return pulumi.All(o, i).ApplyT(func(vs []interface{}) OceanLaunchSpecStrategy {
+ return vs[0].([]OceanLaunchSpecStrategy)[vs[1].(int)]
+ }).(OceanLaunchSpecStrategyOutput)
+}
+
type OceanLaunchSpecTaint struct {
// The effect of the taint. Valid values: `"NoSchedule"`, `"PreferNoSchedule"`, `"NoExecute"`.
Effect string `pulumi:"effect"`
@@ -4426,6 +4523,8 @@ func init() {
pulumi.RegisterOutputType(OceanLaunchSpecLabelArrayOutput{})
pulumi.RegisterOutputType(OceanLaunchSpecMetadataOutput{})
pulumi.RegisterOutputType(OceanLaunchSpecMetadataArrayOutput{})
+ pulumi.RegisterOutputType(OceanLaunchSpecStrategyOutput{})
+ pulumi.RegisterOutputType(OceanLaunchSpecStrategyArrayOutput{})
pulumi.RegisterOutputType(OceanLaunchSpecTaintOutput{})
pulumi.RegisterOutputType(OceanLaunchSpecTaintArrayOutput{})
}
diff --git a/sdk/nodejs/aws/elastigroup.ts b/sdk/nodejs/aws/elastigroup.ts
index ce74eab6..6b9b4cc2 100644
--- a/sdk/nodejs/aws/elastigroup.ts
+++ b/sdk/nodejs/aws/elastigroup.ts
@@ -369,6 +369,7 @@ export class Elastigroup extends pulumi.CustomResource {
*/
public readonly spotPercentage!: pulumi.Output;
public readonly statefulDeallocation!: pulumi.Output;
+ public readonly statefulInstanceActions!: pulumi.Output;
/**
* List of Strings of subnet identifiers.
* Note: When this parameter is set, `availabilityZones` should be left unused.
@@ -479,6 +480,7 @@ export class Elastigroup extends pulumi.CustomResource {
inputs["signals"] = state ? state.signals : undefined;
inputs["spotPercentage"] = state ? state.spotPercentage : undefined;
inputs["statefulDeallocation"] = state ? state.statefulDeallocation : undefined;
+ inputs["statefulInstanceActions"] = state ? state.statefulInstanceActions : undefined;
inputs["subnetIds"] = state ? state.subnetIds : undefined;
inputs["tags"] = state ? state.tags : undefined;
inputs["targetGroupArns"] = state ? state.targetGroupArns : undefined;
@@ -573,6 +575,7 @@ export class Elastigroup extends pulumi.CustomResource {
inputs["signals"] = args ? args.signals : undefined;
inputs["spotPercentage"] = args ? args.spotPercentage : undefined;
inputs["statefulDeallocation"] = args ? args.statefulDeallocation : undefined;
+ inputs["statefulInstanceActions"] = args ? args.statefulInstanceActions : undefined;
inputs["subnetIds"] = args ? args.subnetIds : undefined;
inputs["tags"] = args ? args.tags : undefined;
inputs["targetGroupArns"] = args ? args.targetGroupArns : undefined;
@@ -826,6 +829,7 @@ export interface ElastigroupState {
*/
readonly spotPercentage?: pulumi.Input;
readonly statefulDeallocation?: pulumi.Input;
+ readonly statefulInstanceActions?: pulumi.Input[]>;
/**
* List of Strings of subnet identifiers.
* Note: When this parameter is set, `availabilityZones` should be left unused.
@@ -1095,6 +1099,7 @@ export interface ElastigroupArgs {
*/
readonly spotPercentage?: pulumi.Input;
readonly statefulDeallocation?: pulumi.Input;
+ readonly statefulInstanceActions?: pulumi.Input[]>;
/**
* List of Strings of subnet identifiers.
* Note: When this parameter is set, `availabilityZones` should be left unused.
diff --git a/sdk/nodejs/aws/managedInstance.ts b/sdk/nodejs/aws/managedInstance.ts
index 0f902de9..b03fbdce 100644
--- a/sdk/nodejs/aws/managedInstance.ts
+++ b/sdk/nodejs/aws/managedInstance.ts
@@ -49,6 +49,7 @@ import * as utilities from "../utilities";
* ],
* keyPair: "labs-oregon",
* lifeCycle: "on_demand",
+ * minimumInstanceLifetime: 1,
* optimizationWindows: ["Mon:03:00-Wed:02:20"],
* orientation: "balanced",
* persistBlockDevices: true,
@@ -188,6 +189,7 @@ export class ManagedInstance extends pulumi.CustomResource {
* List of load balancers configs.
*/
public readonly loadBalancers!: pulumi.Output;
+ public readonly minimumInstanceLifetime!: pulumi.Output;
/**
* The record set name.
*/
@@ -300,6 +302,7 @@ export class ManagedInstance extends pulumi.CustomResource {
inputs["keyPair"] = state ? state.keyPair : undefined;
inputs["lifeCycle"] = state ? state.lifeCycle : undefined;
inputs["loadBalancers"] = state ? state.loadBalancers : undefined;
+ inputs["minimumInstanceLifetime"] = state ? state.minimumInstanceLifetime : undefined;
inputs["name"] = state ? state.name : undefined;
inputs["networkInterfaces"] = state ? state.networkInterfaces : undefined;
inputs["optimizationWindows"] = state ? state.optimizationWindows : undefined;
@@ -361,6 +364,7 @@ export class ManagedInstance extends pulumi.CustomResource {
inputs["keyPair"] = args ? args.keyPair : undefined;
inputs["lifeCycle"] = args ? args.lifeCycle : undefined;
inputs["loadBalancers"] = args ? args.loadBalancers : undefined;
+ inputs["minimumInstanceLifetime"] = args ? args.minimumInstanceLifetime : undefined;
inputs["name"] = args ? args.name : undefined;
inputs["networkInterfaces"] = args ? args.networkInterfaces : undefined;
inputs["optimizationWindows"] = args ? args.optimizationWindows : undefined;
@@ -473,6 +477,7 @@ export interface ManagedInstanceState {
* List of load balancers configs.
*/
readonly loadBalancers?: pulumi.Input[]>;
+ readonly minimumInstanceLifetime?: pulumi.Input;
/**
* The record set name.
*/
@@ -636,6 +641,7 @@ export interface ManagedInstanceArgs {
* List of load balancers configs.
*/
readonly loadBalancers?: pulumi.Input[]>;
+ readonly minimumInstanceLifetime?: pulumi.Input;
/**
* The record set name.
*/
diff --git a/sdk/nodejs/aws/oceanLaunchSpec.ts b/sdk/nodejs/aws/oceanLaunchSpec.ts
index 1f1c5985..480c2fc5 100644
--- a/sdk/nodejs/aws/oceanLaunchSpec.ts
+++ b/sdk/nodejs/aws/oceanLaunchSpec.ts
@@ -37,6 +37,9 @@ import * as utilities from "../utilities";
* volumeType: "gp2",
* },
* }],
+ * createOptions: {
+ * initialNodes: 1,
+ * },
* elasticIpPools: [{
* tagSelector: {
* tagKey: "key",
@@ -124,6 +127,7 @@ export class OceanLaunchSpec extends pulumi.CustomResource {
* Object. Array list of block devices that are exposed to the instance, specify either virtual devices and EBS volumes.
*/
public readonly blockDeviceMappings!: pulumi.Output;
+ public readonly createOptions!: pulumi.Output;
/**
* Assign an Elastic IP to the instances spun by the Virtual Node Group. Can be null.
*/
@@ -199,6 +203,7 @@ export class OceanLaunchSpec extends pulumi.CustomResource {
inputs["associatePublicIpAddress"] = state ? state.associatePublicIpAddress : undefined;
inputs["autoscaleHeadrooms"] = state ? state.autoscaleHeadrooms : undefined;
inputs["blockDeviceMappings"] = state ? state.blockDeviceMappings : undefined;
+ inputs["createOptions"] = state ? state.createOptions : undefined;
inputs["elasticIpPools"] = state ? state.elasticIpPools : undefined;
inputs["iamInstanceProfile"] = state ? state.iamInstanceProfile : undefined;
inputs["imageId"] = state ? state.imageId : undefined;
@@ -223,6 +228,7 @@ export class OceanLaunchSpec extends pulumi.CustomResource {
inputs["associatePublicIpAddress"] = args ? args.associatePublicIpAddress : undefined;
inputs["autoscaleHeadrooms"] = args ? args.autoscaleHeadrooms : undefined;
inputs["blockDeviceMappings"] = args ? args.blockDeviceMappings : undefined;
+ inputs["createOptions"] = args ? args.createOptions : undefined;
inputs["elasticIpPools"] = args ? args.elasticIpPools : undefined;
inputs["iamInstanceProfile"] = args ? args.iamInstanceProfile : undefined;
inputs["imageId"] = args ? args.imageId : undefined;
@@ -263,6 +269,7 @@ export interface OceanLaunchSpecState {
* Object. Array list of block devices that are exposed to the instance, specify either virtual devices and EBS volumes.
*/
readonly blockDeviceMappings?: pulumi.Input[]>;
+ readonly createOptions?: pulumi.Input;
/**
* Assign an Elastic IP to the instances spun by the Virtual Node Group. Can be null.
*/
@@ -339,6 +346,7 @@ export interface OceanLaunchSpecArgs {
* Object. Array list of block devices that are exposed to the instance, specify either virtual devices and EBS volumes.
*/
readonly blockDeviceMappings?: pulumi.Input[]>;
+ readonly createOptions?: pulumi.Input;
/**
* Assign an Elastic IP to the instances spun by the Virtual Node Group. Can be null.
*/
diff --git a/sdk/nodejs/gke/oceanLaunchSpec.ts b/sdk/nodejs/gke/oceanLaunchSpec.ts
index b009dc36..9de3e47f 100644
--- a/sdk/nodejs/gke/oceanLaunchSpec.ts
+++ b/sdk/nodejs/gke/oceanLaunchSpec.ts
@@ -32,6 +32,9 @@ import * as utilities from "../utilities";
* oceanId: "o-123456",
* restrictScaleDown: true,
* sourceImage: "image",
+ * strategies: [{
+ * preemptiblePercentage: 30,
+ * }],
* taints: [{
* effect: "taintEffect",
* key: "taintKey",
@@ -86,7 +89,7 @@ export class OceanLaunchSpec extends pulumi.CustomResource {
*/
public readonly metadatas!: pulumi.Output;
/**
- * The Ocean cluster ID required for launchSpec create.
+ * The Ocean cluster ID.
*/
public readonly oceanId!: pulumi.Output;
/**
@@ -97,6 +100,10 @@ export class OceanLaunchSpec extends pulumi.CustomResource {
* Image URL.
*/
public readonly sourceImage!: pulumi.Output;
+ /**
+ * The Ocean Launch Spec Strategy object.
+ */
+ public readonly strategies!: pulumi.Output;
/**
* Optionally adds labels to instances launched in an Ocean cluster.
*/
@@ -121,6 +128,7 @@ export class OceanLaunchSpec extends pulumi.CustomResource {
inputs["oceanId"] = state ? state.oceanId : undefined;
inputs["restrictScaleDown"] = state ? state.restrictScaleDown : undefined;
inputs["sourceImage"] = state ? state.sourceImage : undefined;
+ inputs["strategies"] = state ? state.strategies : undefined;
inputs["taints"] = state ? state.taints : undefined;
} else {
const args = argsOrState as OceanLaunchSpecArgs | undefined;
@@ -139,6 +147,7 @@ export class OceanLaunchSpec extends pulumi.CustomResource {
inputs["oceanId"] = args ? args.oceanId : undefined;
inputs["restrictScaleDown"] = args ? args.restrictScaleDown : undefined;
inputs["sourceImage"] = args ? args.sourceImage : undefined;
+ inputs["strategies"] = args ? args.strategies : undefined;
inputs["taints"] = args ? args.taints : undefined;
}
if (!opts.version) {
@@ -165,7 +174,7 @@ export interface OceanLaunchSpecState {
*/
readonly metadatas?: pulumi.Input[]>;
/**
- * The Ocean cluster ID required for launchSpec create.
+ * The Ocean cluster ID.
*/
readonly oceanId?: pulumi.Input;
/**
@@ -176,6 +185,10 @@ export interface OceanLaunchSpecState {
* Image URL.
*/
readonly sourceImage?: pulumi.Input;
+ /**
+ * The Ocean Launch Spec Strategy object.
+ */
+ readonly strategies?: pulumi.Input[]>;
/**
* Optionally adds labels to instances launched in an Ocean cluster.
*/
@@ -199,7 +212,7 @@ export interface OceanLaunchSpecArgs {
*/
readonly metadatas: pulumi.Input[]>;
/**
- * The Ocean cluster ID required for launchSpec create.
+ * The Ocean cluster ID.
*/
readonly oceanId: pulumi.Input;
/**
@@ -210,6 +223,10 @@ export interface OceanLaunchSpecArgs {
* Image URL.
*/
readonly sourceImage: pulumi.Input;
+ /**
+ * The Ocean Launch Spec Strategy object.
+ */
+ readonly strategies?: pulumi.Input[]>;
/**
* Optionally adds labels to instances launched in an Ocean cluster.
*/
diff --git a/sdk/nodejs/types/input.ts b/sdk/nodejs/types/input.ts
index 1bf5b32a..13badf34 100644
--- a/sdk/nodejs/types/input.ts
+++ b/sdk/nodejs/types/input.ts
@@ -1187,6 +1187,17 @@ export namespace aws {
shouldDeleteVolumes?: pulumi.Input;
}
+ export interface ElastigroupStatefulInstanceAction {
+ /**
+ * String, Stateful Instance ID on which the action should be performed.
+ */
+ statefulInstanceId: pulumi.Input;
+ /**
+ * String, Action type. Supported action types: `pause`, `resume`, `recycle`, `deallocate`.
+ */
+ type: pulumi.Input;
+ }
+
export interface ElastigroupTag {
key?: pulumi.Input;
/**
@@ -2108,6 +2119,13 @@ export namespace aws {
sizePerResourceUnit: pulumi.Input;
}
+ export interface OceanLaunchSpecCreateOptions {
+ /**
+ * When set to an integer greater than 0, a corresponding amount of nodes will be launched from the created virtual node group.
+ */
+ initialNodes: pulumi.Input;
+ }
+
export interface OceanLaunchSpecElasticIpPool {
/**
* A key-value pair, which defines an Elastic IP from the customer pool. Can be null.
@@ -3804,6 +3822,13 @@ export namespace gke {
value: pulumi.Input;
}
+ export interface OceanLaunchSpecStrategy {
+ /**
+ * Defines the desired preemptible percentage for this launch specification.
+ */
+ preemptiblePercentage?: pulumi.Input;
+ }
+
export interface OceanLaunchSpecTaint {
/**
* The effect of the taint. Valid values: `"NoSchedule"`, `"PreferNoSchedule"`, `"NoExecute"`.
diff --git a/sdk/nodejs/types/output.ts b/sdk/nodejs/types/output.ts
index 3abe597d..cbef64c3 100644
--- a/sdk/nodejs/types/output.ts
+++ b/sdk/nodejs/types/output.ts
@@ -1187,6 +1187,17 @@ export namespace aws {
shouldDeleteVolumes?: boolean;
}
+ export interface ElastigroupStatefulInstanceAction {
+ /**
+ * String, Stateful Instance ID on which the action should be performed.
+ */
+ statefulInstanceId: string;
+ /**
+ * String, Action type. Supported action types: `pause`, `resume`, `recycle`, `deallocate`.
+ */
+ type: string;
+ }
+
export interface ElastigroupTag {
key?: string;
/**
@@ -2108,6 +2119,13 @@ export namespace aws {
sizePerResourceUnit: number;
}
+ export interface OceanLaunchSpecCreateOptions {
+ /**
+ * When set to an integer greater than 0, a corresponding amount of nodes will be launched from the created virtual node group.
+ */
+ initialNodes: number;
+ }
+
export interface OceanLaunchSpecElasticIpPool {
/**
* A key-value pair, which defines an Elastic IP from the customer pool. Can be null.
@@ -3804,6 +3822,13 @@ export namespace gke {
value: string;
}
+ export interface OceanLaunchSpecStrategy {
+ /**
+ * Defines the desired preemptible percentage for this launch specification.
+ */
+ preemptiblePercentage?: number;
+ }
+
export interface OceanLaunchSpecTaint {
/**
* The effect of the taint. Valid values: `"NoSchedule"`, `"PreferNoSchedule"`, `"NoExecute"`.
diff --git a/sdk/python/pulumi_spotinst/aws/_inputs.py b/sdk/python/pulumi_spotinst/aws/_inputs.py
index 22131f18..ae3b6cb4 100644
--- a/sdk/python/pulumi_spotinst/aws/_inputs.py
+++ b/sdk/python/pulumi_spotinst/aws/_inputs.py
@@ -63,6 +63,7 @@
'ElastigroupScheduledTaskArgs',
'ElastigroupSignalArgs',
'ElastigroupStatefulDeallocationArgs',
+ 'ElastigroupStatefulInstanceActionArgs',
'ElastigroupTagArgs',
'ElastigroupUpdatePolicyArgs',
'ElastigroupUpdatePolicyRollConfigArgs',
@@ -103,6 +104,7 @@
'OceanLaunchSpecBlockDeviceMappingArgs',
'OceanLaunchSpecBlockDeviceMappingEbsArgs',
'OceanLaunchSpecBlockDeviceMappingEbsDynamicVolumeSizeArgs',
+ 'OceanLaunchSpecCreateOptionsArgs',
'OceanLaunchSpecElasticIpPoolArgs',
'OceanLaunchSpecElasticIpPoolTagSelectorArgs',
'OceanLaunchSpecLabelArgs',
@@ -4031,6 +4033,43 @@ def should_delete_volumes(self, value: Optional[pulumi.Input[bool]]):
pulumi.set(self, "should_delete_volumes", value)
+@pulumi.input_type
+class ElastigroupStatefulInstanceActionArgs:
+ def __init__(__self__, *,
+ stateful_instance_id: pulumi.Input[str],
+ type: pulumi.Input[str]):
+ """
+ :param pulumi.Input[str] stateful_instance_id: String, Stateful Instance ID on which the action should be performed.
+ :param pulumi.Input[str] type: String, Action type. Supported action types: `pause`, `resume`, `recycle`, `deallocate`.
+ """
+ pulumi.set(__self__, "stateful_instance_id", stateful_instance_id)
+ pulumi.set(__self__, "type", type)
+
+ @property
+ @pulumi.getter(name="statefulInstanceId")
+ def stateful_instance_id(self) -> pulumi.Input[str]:
+ """
+ String, Stateful Instance ID on which the action should be performed.
+ """
+ return pulumi.get(self, "stateful_instance_id")
+
+ @stateful_instance_id.setter
+ def stateful_instance_id(self, value: pulumi.Input[str]):
+ pulumi.set(self, "stateful_instance_id", value)
+
+ @property
+ @pulumi.getter
+ def type(self) -> pulumi.Input[str]:
+ """
+ String, Action type. Supported action types: `pause`, `resume`, `recycle`, `deallocate`.
+ """
+ return pulumi.get(self, "type")
+
+ @type.setter
+ def type(self, value: pulumi.Input[str]):
+ pulumi.set(self, "type", value)
+
+
@pulumi.input_type
class ElastigroupTagArgs:
def __init__(__self__, *,
@@ -7492,6 +7531,28 @@ def size_per_resource_unit(self, value: pulumi.Input[int]):
pulumi.set(self, "size_per_resource_unit", value)
+@pulumi.input_type
+class OceanLaunchSpecCreateOptionsArgs:
+ def __init__(__self__, *,
+ initial_nodes: pulumi.Input[int]):
+ """
+ :param pulumi.Input[int] initial_nodes: When set to an integer greater than 0, a corresponding amount of nodes will be launched from the created virtual node group.
+ """
+ pulumi.set(__self__, "initial_nodes", initial_nodes)
+
+ @property
+ @pulumi.getter(name="initialNodes")
+ def initial_nodes(self) -> pulumi.Input[int]:
+ """
+ When set to an integer greater than 0, a corresponding amount of nodes will be launched from the created virtual node group.
+ """
+ return pulumi.get(self, "initial_nodes")
+
+ @initial_nodes.setter
+ def initial_nodes(self, value: pulumi.Input[int]):
+ pulumi.set(self, "initial_nodes", value)
+
+
@pulumi.input_type
class OceanLaunchSpecElasticIpPoolArgs:
def __init__(__self__, *,
diff --git a/sdk/python/pulumi_spotinst/aws/elastigroup.py b/sdk/python/pulumi_spotinst/aws/elastigroup.py
index 5967b2ab..ca42d08e 100644
--- a/sdk/python/pulumi_spotinst/aws/elastigroup.py
+++ b/sdk/python/pulumi_spotinst/aws/elastigroup.py
@@ -80,6 +80,7 @@ def __init__(__self__, *,
signals: Optional[pulumi.Input[Sequence[pulumi.Input['ElastigroupSignalArgs']]]] = None,
spot_percentage: Optional[pulumi.Input[int]] = None,
stateful_deallocation: Optional[pulumi.Input['ElastigroupStatefulDeallocationArgs']] = None,
+ stateful_instance_actions: Optional[pulumi.Input[Sequence[pulumi.Input['ElastigroupStatefulInstanceActionArgs']]]] = None,
subnet_ids: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None,
tags: Optional[pulumi.Input[Sequence[pulumi.Input['ElastigroupTagArgs']]]] = None,
target_group_arns: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None,
@@ -283,6 +284,8 @@ def __init__(__self__, *,
pulumi.set(__self__, "spot_percentage", spot_percentage)
if stateful_deallocation is not None:
pulumi.set(__self__, "stateful_deallocation", stateful_deallocation)
+ if stateful_instance_actions is not None:
+ pulumi.set(__self__, "stateful_instance_actions", stateful_instance_actions)
if subnet_ids is not None:
pulumi.set(__self__, "subnet_ids", subnet_ids)
if tags is not None:
@@ -1054,6 +1057,15 @@ def stateful_deallocation(self) -> Optional[pulumi.Input['ElastigroupStatefulDea
def stateful_deallocation(self, value: Optional[pulumi.Input['ElastigroupStatefulDeallocationArgs']]):
pulumi.set(self, "stateful_deallocation", value)
+ @property
+ @pulumi.getter(name="statefulInstanceActions")
+ def stateful_instance_actions(self) -> Optional[pulumi.Input[Sequence[pulumi.Input['ElastigroupStatefulInstanceActionArgs']]]]:
+ return pulumi.get(self, "stateful_instance_actions")
+
+ @stateful_instance_actions.setter
+ def stateful_instance_actions(self, value: Optional[pulumi.Input[Sequence[pulumi.Input['ElastigroupStatefulInstanceActionArgs']]]]):
+ pulumi.set(self, "stateful_instance_actions", value)
+
@property
@pulumi.getter(name="subnetIds")
def subnet_ids(self) -> Optional[pulumi.Input[Sequence[pulumi.Input[str]]]]:
@@ -1226,6 +1238,7 @@ def __init__(__self__, *,
signals: Optional[pulumi.Input[Sequence[pulumi.Input['ElastigroupSignalArgs']]]] = None,
spot_percentage: Optional[pulumi.Input[int]] = None,
stateful_deallocation: Optional[pulumi.Input['ElastigroupStatefulDeallocationArgs']] = None,
+ stateful_instance_actions: Optional[pulumi.Input[Sequence[pulumi.Input['ElastigroupStatefulInstanceActionArgs']]]] = None,
subnet_ids: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None,
tags: Optional[pulumi.Input[Sequence[pulumi.Input['ElastigroupTagArgs']]]] = None,
target_group_arns: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None,
@@ -1435,6 +1448,8 @@ def __init__(__self__, *,
pulumi.set(__self__, "spot_percentage", spot_percentage)
if stateful_deallocation is not None:
pulumi.set(__self__, "stateful_deallocation", stateful_deallocation)
+ if stateful_instance_actions is not None:
+ pulumi.set(__self__, "stateful_instance_actions", stateful_instance_actions)
if subnet_ids is not None:
pulumi.set(__self__, "subnet_ids", subnet_ids)
if tags is not None:
@@ -2206,6 +2221,15 @@ def stateful_deallocation(self) -> Optional[pulumi.Input['ElastigroupStatefulDea
def stateful_deallocation(self, value: Optional[pulumi.Input['ElastigroupStatefulDeallocationArgs']]):
pulumi.set(self, "stateful_deallocation", value)
+ @property
+ @pulumi.getter(name="statefulInstanceActions")
+ def stateful_instance_actions(self) -> Optional[pulumi.Input[Sequence[pulumi.Input['ElastigroupStatefulInstanceActionArgs']]]]:
+ return pulumi.get(self, "stateful_instance_actions")
+
+ @stateful_instance_actions.setter
+ def stateful_instance_actions(self, value: Optional[pulumi.Input[Sequence[pulumi.Input['ElastigroupStatefulInstanceActionArgs']]]]):
+ pulumi.set(self, "stateful_instance_actions", value)
+
@property
@pulumi.getter(name="subnetIds")
def subnet_ids(self) -> Optional[pulumi.Input[Sequence[pulumi.Input[str]]]]:
@@ -2380,6 +2404,7 @@ def __init__(__self__,
signals: Optional[pulumi.Input[Sequence[pulumi.Input[pulumi.InputType['ElastigroupSignalArgs']]]]] = None,
spot_percentage: Optional[pulumi.Input[int]] = None,
stateful_deallocation: Optional[pulumi.Input[pulumi.InputType['ElastigroupStatefulDeallocationArgs']]] = None,
+ stateful_instance_actions: Optional[pulumi.Input[Sequence[pulumi.Input[pulumi.InputType['ElastigroupStatefulInstanceActionArgs']]]]] = None,
subnet_ids: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None,
tags: Optional[pulumi.Input[Sequence[pulumi.Input[pulumi.InputType['ElastigroupTagArgs']]]]] = None,
target_group_arns: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None,
@@ -2552,6 +2577,7 @@ def _internal_init(__self__,
signals: Optional[pulumi.Input[Sequence[pulumi.Input[pulumi.InputType['ElastigroupSignalArgs']]]]] = None,
spot_percentage: Optional[pulumi.Input[int]] = None,
stateful_deallocation: Optional[pulumi.Input[pulumi.InputType['ElastigroupStatefulDeallocationArgs']]] = None,
+ stateful_instance_actions: Optional[pulumi.Input[Sequence[pulumi.Input[pulumi.InputType['ElastigroupStatefulInstanceActionArgs']]]]] = None,
subnet_ids: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None,
tags: Optional[pulumi.Input[Sequence[pulumi.Input[pulumi.InputType['ElastigroupTagArgs']]]]] = None,
target_group_arns: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None,
@@ -2650,6 +2676,7 @@ def _internal_init(__self__,
__props__.__dict__["signals"] = signals
__props__.__dict__["spot_percentage"] = spot_percentage
__props__.__dict__["stateful_deallocation"] = stateful_deallocation
+ __props__.__dict__["stateful_instance_actions"] = stateful_instance_actions
__props__.__dict__["subnet_ids"] = subnet_ids
__props__.__dict__["tags"] = tags
__props__.__dict__["target_group_arns"] = target_group_arns
@@ -2734,6 +2761,7 @@ def get(resource_name: str,
signals: Optional[pulumi.Input[Sequence[pulumi.Input[pulumi.InputType['ElastigroupSignalArgs']]]]] = None,
spot_percentage: Optional[pulumi.Input[int]] = None,
stateful_deallocation: Optional[pulumi.Input[pulumi.InputType['ElastigroupStatefulDeallocationArgs']]] = None,
+ stateful_instance_actions: Optional[pulumi.Input[Sequence[pulumi.Input[pulumi.InputType['ElastigroupStatefulInstanceActionArgs']]]]] = None,
subnet_ids: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None,
tags: Optional[pulumi.Input[Sequence[pulumi.Input[pulumi.InputType['ElastigroupTagArgs']]]]] = None,
target_group_arns: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None,
@@ -2887,6 +2915,7 @@ def get(resource_name: str,
__props__.__dict__["signals"] = signals
__props__.__dict__["spot_percentage"] = spot_percentage
__props__.__dict__["stateful_deallocation"] = stateful_deallocation
+ __props__.__dict__["stateful_instance_actions"] = stateful_instance_actions
__props__.__dict__["subnet_ids"] = subnet_ids
__props__.__dict__["tags"] = tags
__props__.__dict__["target_group_arns"] = target_group_arns
@@ -3390,6 +3419,11 @@ def spot_percentage(self) -> pulumi.Output[Optional[int]]:
def stateful_deallocation(self) -> pulumi.Output[Optional['outputs.ElastigroupStatefulDeallocation']]:
return pulumi.get(self, "stateful_deallocation")
+ @property
+ @pulumi.getter(name="statefulInstanceActions")
+ def stateful_instance_actions(self) -> pulumi.Output[Optional[Sequence['outputs.ElastigroupStatefulInstanceAction']]]:
+ return pulumi.get(self, "stateful_instance_actions")
+
@property
@pulumi.getter(name="subnetIds")
def subnet_ids(self) -> pulumi.Output[Optional[Sequence[str]]]:
diff --git a/sdk/python/pulumi_spotinst/aws/managed_instance.py b/sdk/python/pulumi_spotinst/aws/managed_instance.py
index 2e34c0b5..d39faebb 100644
--- a/sdk/python/pulumi_spotinst/aws/managed_instance.py
+++ b/sdk/python/pulumi_spotinst/aws/managed_instance.py
@@ -38,6 +38,7 @@ def __init__(__self__, *,
key_pair: Optional[pulumi.Input[str]] = None,
life_cycle: Optional[pulumi.Input[str]] = None,
load_balancers: Optional[pulumi.Input[Sequence[pulumi.Input['ManagedInstanceLoadBalancerArgs']]]] = None,
+ minimum_instance_lifetime: Optional[pulumi.Input[int]] = None,
name: Optional[pulumi.Input[str]] = None,
network_interfaces: Optional[pulumi.Input[Sequence[pulumi.Input['ManagedInstanceNetworkInterfaceArgs']]]] = None,
optimization_windows: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None,
@@ -143,6 +144,8 @@ def __init__(__self__, *,
pulumi.set(__self__, "life_cycle", life_cycle)
if load_balancers is not None:
pulumi.set(__self__, "load_balancers", load_balancers)
+ if minimum_instance_lifetime is not None:
+ pulumi.set(__self__, "minimum_instance_lifetime", minimum_instance_lifetime)
if name is not None:
pulumi.set(__self__, "name", name)
if network_interfaces is not None:
@@ -455,6 +458,15 @@ def load_balancers(self) -> Optional[pulumi.Input[Sequence[pulumi.Input['Managed
def load_balancers(self, value: Optional[pulumi.Input[Sequence[pulumi.Input['ManagedInstanceLoadBalancerArgs']]]]):
pulumi.set(self, "load_balancers", value)
+ @property
+ @pulumi.getter(name="minimumInstanceLifetime")
+ def minimum_instance_lifetime(self) -> Optional[pulumi.Input[int]]:
+ return pulumi.get(self, "minimum_instance_lifetime")
+
+ @minimum_instance_lifetime.setter
+ def minimum_instance_lifetime(self, value: Optional[pulumi.Input[int]]):
+ pulumi.set(self, "minimum_instance_lifetime", value)
+
@property
@pulumi.getter
def name(self) -> Optional[pulumi.Input[str]]:
@@ -688,6 +700,7 @@ def __init__(__self__, *,
key_pair: Optional[pulumi.Input[str]] = None,
life_cycle: Optional[pulumi.Input[str]] = None,
load_balancers: Optional[pulumi.Input[Sequence[pulumi.Input['ManagedInstanceLoadBalancerArgs']]]] = None,
+ minimum_instance_lifetime: Optional[pulumi.Input[int]] = None,
name: Optional[pulumi.Input[str]] = None,
network_interfaces: Optional[pulumi.Input[Sequence[pulumi.Input['ManagedInstanceNetworkInterfaceArgs']]]] = None,
optimization_windows: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None,
@@ -795,6 +808,8 @@ def __init__(__self__, *,
pulumi.set(__self__, "life_cycle", life_cycle)
if load_balancers is not None:
pulumi.set(__self__, "load_balancers", load_balancers)
+ if minimum_instance_lifetime is not None:
+ pulumi.set(__self__, "minimum_instance_lifetime", minimum_instance_lifetime)
if name is not None:
pulumi.set(__self__, "name", name)
if network_interfaces is not None:
@@ -1070,6 +1085,15 @@ def load_balancers(self) -> Optional[pulumi.Input[Sequence[pulumi.Input['Managed
def load_balancers(self, value: Optional[pulumi.Input[Sequence[pulumi.Input['ManagedInstanceLoadBalancerArgs']]]]):
pulumi.set(self, "load_balancers", value)
+ @property
+ @pulumi.getter(name="minimumInstanceLifetime")
+ def minimum_instance_lifetime(self) -> Optional[pulumi.Input[int]]:
+ return pulumi.get(self, "minimum_instance_lifetime")
+
+ @minimum_instance_lifetime.setter
+ def minimum_instance_lifetime(self, value: Optional[pulumi.Input[int]]):
+ pulumi.set(self, "minimum_instance_lifetime", value)
+
@property
@pulumi.getter
def name(self) -> Optional[pulumi.Input[str]]:
@@ -1350,6 +1374,7 @@ def __init__(__self__,
key_pair: Optional[pulumi.Input[str]] = None,
life_cycle: Optional[pulumi.Input[str]] = None,
load_balancers: Optional[pulumi.Input[Sequence[pulumi.Input[pulumi.InputType['ManagedInstanceLoadBalancerArgs']]]]] = None,
+ minimum_instance_lifetime: Optional[pulumi.Input[int]] = None,
name: Optional[pulumi.Input[str]] = None,
network_interfaces: Optional[pulumi.Input[Sequence[pulumi.Input[pulumi.InputType['ManagedInstanceNetworkInterfaceArgs']]]]] = None,
optimization_windows: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None,
@@ -1466,6 +1491,7 @@ def _internal_init(__self__,
key_pair: Optional[pulumi.Input[str]] = None,
life_cycle: Optional[pulumi.Input[str]] = None,
load_balancers: Optional[pulumi.Input[Sequence[pulumi.Input[pulumi.InputType['ManagedInstanceLoadBalancerArgs']]]]] = None,
+ minimum_instance_lifetime: Optional[pulumi.Input[int]] = None,
name: Optional[pulumi.Input[str]] = None,
network_interfaces: Optional[pulumi.Input[Sequence[pulumi.Input[pulumi.InputType['ManagedInstanceNetworkInterfaceArgs']]]]] = None,
optimization_windows: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None,
@@ -1523,6 +1549,7 @@ def _internal_init(__self__,
__props__.__dict__["key_pair"] = key_pair
__props__.__dict__["life_cycle"] = life_cycle
__props__.__dict__["load_balancers"] = load_balancers
+ __props__.__dict__["minimum_instance_lifetime"] = minimum_instance_lifetime
__props__.__dict__["name"] = name
__props__.__dict__["network_interfaces"] = network_interfaces
__props__.__dict__["optimization_windows"] = optimization_windows
@@ -1582,6 +1609,7 @@ def get(resource_name: str,
key_pair: Optional[pulumi.Input[str]] = None,
life_cycle: Optional[pulumi.Input[str]] = None,
load_balancers: Optional[pulumi.Input[Sequence[pulumi.Input[pulumi.InputType['ManagedInstanceLoadBalancerArgs']]]]] = None,
+ minimum_instance_lifetime: Optional[pulumi.Input[int]] = None,
name: Optional[pulumi.Input[str]] = None,
network_interfaces: Optional[pulumi.Input[Sequence[pulumi.Input[pulumi.InputType['ManagedInstanceNetworkInterfaceArgs']]]]] = None,
optimization_windows: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None,
@@ -1679,6 +1707,7 @@ def get(resource_name: str,
__props__.__dict__["key_pair"] = key_pair
__props__.__dict__["life_cycle"] = life_cycle
__props__.__dict__["load_balancers"] = load_balancers
+ __props__.__dict__["minimum_instance_lifetime"] = minimum_instance_lifetime
__props__.__dict__["name"] = name
__props__.__dict__["network_interfaces"] = network_interfaces
__props__.__dict__["optimization_windows"] = optimization_windows
@@ -1857,6 +1886,11 @@ def load_balancers(self) -> pulumi.Output[Optional[Sequence['outputs.ManagedInst
"""
return pulumi.get(self, "load_balancers")
+ @property
+ @pulumi.getter(name="minimumInstanceLifetime")
+ def minimum_instance_lifetime(self) -> pulumi.Output[Optional[int]]:
+ return pulumi.get(self, "minimum_instance_lifetime")
+
@property
@pulumi.getter
def name(self) -> pulumi.Output[str]:
diff --git a/sdk/python/pulumi_spotinst/aws/ocean_launch_spec.py b/sdk/python/pulumi_spotinst/aws/ocean_launch_spec.py
index f665504c..edfbc3dd 100644
--- a/sdk/python/pulumi_spotinst/aws/ocean_launch_spec.py
+++ b/sdk/python/pulumi_spotinst/aws/ocean_launch_spec.py
@@ -19,6 +19,7 @@ def __init__(__self__, *,
associate_public_ip_address: Optional[pulumi.Input[bool]] = None,
autoscale_headrooms: Optional[pulumi.Input[Sequence[pulumi.Input['OceanLaunchSpecAutoscaleHeadroomArgs']]]] = None,
block_device_mappings: Optional[pulumi.Input[Sequence[pulumi.Input['OceanLaunchSpecBlockDeviceMappingArgs']]]] = None,
+ create_options: Optional[pulumi.Input['OceanLaunchSpecCreateOptionsArgs']] = None,
elastic_ip_pools: Optional[pulumi.Input[Sequence[pulumi.Input['OceanLaunchSpecElasticIpPoolArgs']]]] = None,
iam_instance_profile: Optional[pulumi.Input[str]] = None,
image_id: Optional[pulumi.Input[str]] = None,
@@ -61,6 +62,8 @@ def __init__(__self__, *,
pulumi.set(__self__, "autoscale_headrooms", autoscale_headrooms)
if block_device_mappings is not None:
pulumi.set(__self__, "block_device_mappings", block_device_mappings)
+ if create_options is not None:
+ pulumi.set(__self__, "create_options", create_options)
if elastic_ip_pools is not None:
pulumi.set(__self__, "elastic_ip_pools", elastic_ip_pools)
if iam_instance_profile is not None:
@@ -140,6 +143,15 @@ def block_device_mappings(self) -> Optional[pulumi.Input[Sequence[pulumi.Input['
def block_device_mappings(self, value: Optional[pulumi.Input[Sequence[pulumi.Input['OceanLaunchSpecBlockDeviceMappingArgs']]]]):
pulumi.set(self, "block_device_mappings", value)
+ @property
+ @pulumi.getter(name="createOptions")
+ def create_options(self) -> Optional[pulumi.Input['OceanLaunchSpecCreateOptionsArgs']]:
+ return pulumi.get(self, "create_options")
+
+ @create_options.setter
+ def create_options(self, value: Optional[pulumi.Input['OceanLaunchSpecCreateOptionsArgs']]):
+ pulumi.set(self, "create_options", value)
+
@property
@pulumi.getter(name="elasticIpPools")
def elastic_ip_pools(self) -> Optional[pulumi.Input[Sequence[pulumi.Input['OceanLaunchSpecElasticIpPoolArgs']]]]:
@@ -321,6 +333,7 @@ def __init__(__self__, *,
associate_public_ip_address: Optional[pulumi.Input[bool]] = None,
autoscale_headrooms: Optional[pulumi.Input[Sequence[pulumi.Input['OceanLaunchSpecAutoscaleHeadroomArgs']]]] = None,
block_device_mappings: Optional[pulumi.Input[Sequence[pulumi.Input['OceanLaunchSpecBlockDeviceMappingArgs']]]] = None,
+ create_options: Optional[pulumi.Input['OceanLaunchSpecCreateOptionsArgs']] = None,
elastic_ip_pools: Optional[pulumi.Input[Sequence[pulumi.Input['OceanLaunchSpecElasticIpPoolArgs']]]] = None,
iam_instance_profile: Optional[pulumi.Input[str]] = None,
image_id: Optional[pulumi.Input[str]] = None,
@@ -363,6 +376,8 @@ def __init__(__self__, *,
pulumi.set(__self__, "autoscale_headrooms", autoscale_headrooms)
if block_device_mappings is not None:
pulumi.set(__self__, "block_device_mappings", block_device_mappings)
+ if create_options is not None:
+ pulumi.set(__self__, "create_options", create_options)
if elastic_ip_pools is not None:
pulumi.set(__self__, "elastic_ip_pools", elastic_ip_pools)
if iam_instance_profile is not None:
@@ -432,6 +447,15 @@ def block_device_mappings(self) -> Optional[pulumi.Input[Sequence[pulumi.Input['
def block_device_mappings(self, value: Optional[pulumi.Input[Sequence[pulumi.Input['OceanLaunchSpecBlockDeviceMappingArgs']]]]):
pulumi.set(self, "block_device_mappings", value)
+ @property
+ @pulumi.getter(name="createOptions")
+ def create_options(self) -> Optional[pulumi.Input['OceanLaunchSpecCreateOptionsArgs']]:
+ return pulumi.get(self, "create_options")
+
+ @create_options.setter
+ def create_options(self, value: Optional[pulumi.Input['OceanLaunchSpecCreateOptionsArgs']]):
+ pulumi.set(self, "create_options", value)
+
@property
@pulumi.getter(name="elasticIpPools")
def elastic_ip_pools(self) -> Optional[pulumi.Input[Sequence[pulumi.Input['OceanLaunchSpecElasticIpPoolArgs']]]]:
@@ -627,6 +651,7 @@ def __init__(__self__,
associate_public_ip_address: Optional[pulumi.Input[bool]] = None,
autoscale_headrooms: Optional[pulumi.Input[Sequence[pulumi.Input[pulumi.InputType['OceanLaunchSpecAutoscaleHeadroomArgs']]]]] = None,
block_device_mappings: Optional[pulumi.Input[Sequence[pulumi.Input[pulumi.InputType['OceanLaunchSpecBlockDeviceMappingArgs']]]]] = None,
+ create_options: Optional[pulumi.Input[pulumi.InputType['OceanLaunchSpecCreateOptionsArgs']]] = None,
elastic_ip_pools: Optional[pulumi.Input[Sequence[pulumi.Input[pulumi.InputType['OceanLaunchSpecElasticIpPoolArgs']]]]] = None,
iam_instance_profile: Optional[pulumi.Input[str]] = None,
image_id: Optional[pulumi.Input[str]] = None,
@@ -676,6 +701,9 @@ def __init__(__self__,
volume_type="gp2",
),
)],
+ create_options=spotinst.aws.OceanLaunchSpecCreateOptionsArgs(
+ initial_nodes=1,
+ ),
elastic_ip_pools=[spotinst.aws.OceanLaunchSpecElasticIpPoolArgs(
tag_selector=spotinst.aws.OceanLaunchSpecElasticIpPoolTagSelectorArgs(
tag_key="key",
@@ -780,6 +808,9 @@ def __init__(__self__,
volume_type="gp2",
),
)],
+ create_options=spotinst.aws.OceanLaunchSpecCreateOptionsArgs(
+ initial_nodes=1,
+ ),
elastic_ip_pools=[spotinst.aws.OceanLaunchSpecElasticIpPoolArgs(
tag_selector=spotinst.aws.OceanLaunchSpecElasticIpPoolTagSelectorArgs(
tag_key="key",
@@ -844,6 +875,7 @@ def _internal_init(__self__,
associate_public_ip_address: Optional[pulumi.Input[bool]] = None,
autoscale_headrooms: Optional[pulumi.Input[Sequence[pulumi.Input[pulumi.InputType['OceanLaunchSpecAutoscaleHeadroomArgs']]]]] = None,
block_device_mappings: Optional[pulumi.Input[Sequence[pulumi.Input[pulumi.InputType['OceanLaunchSpecBlockDeviceMappingArgs']]]]] = None,
+ create_options: Optional[pulumi.Input[pulumi.InputType['OceanLaunchSpecCreateOptionsArgs']]] = None,
elastic_ip_pools: Optional[pulumi.Input[Sequence[pulumi.Input[pulumi.InputType['OceanLaunchSpecElasticIpPoolArgs']]]]] = None,
iam_instance_profile: Optional[pulumi.Input[str]] = None,
image_id: Optional[pulumi.Input[str]] = None,
@@ -875,6 +907,7 @@ def _internal_init(__self__,
__props__.__dict__["associate_public_ip_address"] = associate_public_ip_address
__props__.__dict__["autoscale_headrooms"] = autoscale_headrooms
__props__.__dict__["block_device_mappings"] = block_device_mappings
+ __props__.__dict__["create_options"] = create_options
__props__.__dict__["elastic_ip_pools"] = elastic_ip_pools
__props__.__dict__["iam_instance_profile"] = iam_instance_profile
__props__.__dict__["image_id"] = image_id
@@ -906,6 +939,7 @@ def get(resource_name: str,
associate_public_ip_address: Optional[pulumi.Input[bool]] = None,
autoscale_headrooms: Optional[pulumi.Input[Sequence[pulumi.Input[pulumi.InputType['OceanLaunchSpecAutoscaleHeadroomArgs']]]]] = None,
block_device_mappings: Optional[pulumi.Input[Sequence[pulumi.Input[pulumi.InputType['OceanLaunchSpecBlockDeviceMappingArgs']]]]] = None,
+ create_options: Optional[pulumi.Input[pulumi.InputType['OceanLaunchSpecCreateOptionsArgs']]] = None,
elastic_ip_pools: Optional[pulumi.Input[Sequence[pulumi.Input[pulumi.InputType['OceanLaunchSpecElasticIpPoolArgs']]]]] = None,
iam_instance_profile: Optional[pulumi.Input[str]] = None,
image_id: Optional[pulumi.Input[str]] = None,
@@ -954,6 +988,7 @@ def get(resource_name: str,
__props__.__dict__["associate_public_ip_address"] = associate_public_ip_address
__props__.__dict__["autoscale_headrooms"] = autoscale_headrooms
__props__.__dict__["block_device_mappings"] = block_device_mappings
+ __props__.__dict__["create_options"] = create_options
__props__.__dict__["elastic_ip_pools"] = elastic_ip_pools
__props__.__dict__["iam_instance_profile"] = iam_instance_profile
__props__.__dict__["image_id"] = image_id
@@ -996,6 +1031,11 @@ def block_device_mappings(self) -> pulumi.Output[Optional[Sequence['outputs.Ocea
"""
return pulumi.get(self, "block_device_mappings")
+ @property
+ @pulumi.getter(name="createOptions")
+ def create_options(self) -> pulumi.Output[Optional['outputs.OceanLaunchSpecCreateOptions']]:
+ return pulumi.get(self, "create_options")
+
@property
@pulumi.getter(name="elasticIpPools")
def elastic_ip_pools(self) -> pulumi.Output[Optional[Sequence['outputs.OceanLaunchSpecElasticIpPool']]]:
diff --git a/sdk/python/pulumi_spotinst/aws/outputs.py b/sdk/python/pulumi_spotinst/aws/outputs.py
index 216bb968..889962b5 100644
--- a/sdk/python/pulumi_spotinst/aws/outputs.py
+++ b/sdk/python/pulumi_spotinst/aws/outputs.py
@@ -64,6 +64,7 @@
'ElastigroupScheduledTask',
'ElastigroupSignal',
'ElastigroupStatefulDeallocation',
+ 'ElastigroupStatefulInstanceAction',
'ElastigroupTag',
'ElastigroupUpdatePolicy',
'ElastigroupUpdatePolicyRollConfig',
@@ -104,6 +105,7 @@
'OceanLaunchSpecBlockDeviceMapping',
'OceanLaunchSpecBlockDeviceMappingEbs',
'OceanLaunchSpecBlockDeviceMappingEbsDynamicVolumeSize',
+ 'OceanLaunchSpecCreateOptions',
'OceanLaunchSpecElasticIpPool',
'OceanLaunchSpecElasticIpPoolTagSelector',
'OceanLaunchSpecLabel',
@@ -4125,6 +4127,52 @@ def should_delete_volumes(self) -> Optional[bool]:
return pulumi.get(self, "should_delete_volumes")
+@pulumi.output_type
+class ElastigroupStatefulInstanceAction(dict):
+ @staticmethod
+ def __key_warning(key: str):
+ suggest = None
+ if key == "statefulInstanceId":
+ suggest = "stateful_instance_id"
+
+ if suggest:
+ pulumi.log.warn(f"Key '{key}' not found in ElastigroupStatefulInstanceAction. Access the value via the '{suggest}' property getter instead.")
+
+ def __getitem__(self, key: str) -> Any:
+ ElastigroupStatefulInstanceAction.__key_warning(key)
+ return super().__getitem__(key)
+
+ def get(self, key: str, default = None) -> Any:
+ ElastigroupStatefulInstanceAction.__key_warning(key)
+ return super().get(key, default)
+
+ def __init__(__self__, *,
+ stateful_instance_id: str,
+ type: str):
+ """
+ :param str stateful_instance_id: String, Stateful Instance ID on which the action should be performed.
+ :param str type: String, Action type. Supported action types: `pause`, `resume`, `recycle`, `deallocate`.
+ """
+ pulumi.set(__self__, "stateful_instance_id", stateful_instance_id)
+ pulumi.set(__self__, "type", type)
+
+ @property
+ @pulumi.getter(name="statefulInstanceId")
+ def stateful_instance_id(self) -> str:
+ """
+ String, Stateful Instance ID on which the action should be performed.
+ """
+ return pulumi.get(self, "stateful_instance_id")
+
+ @property
+ @pulumi.getter
+ def type(self) -> str:
+ """
+ String, Action type. Supported action types: `pause`, `resume`, `recycle`, `deallocate`.
+ """
+ return pulumi.get(self, "type")
+
+
@pulumi.output_type
class ElastigroupTag(dict):
def __init__(__self__, *,
@@ -7461,6 +7509,41 @@ def size_per_resource_unit(self) -> int:
return pulumi.get(self, "size_per_resource_unit")
+@pulumi.output_type
+class OceanLaunchSpecCreateOptions(dict):
+ @staticmethod
+ def __key_warning(key: str):
+ suggest = None
+ if key == "initialNodes":
+ suggest = "initial_nodes"
+
+ if suggest:
+ pulumi.log.warn(f"Key '{key}' not found in OceanLaunchSpecCreateOptions. Access the value via the '{suggest}' property getter instead.")
+
+ def __getitem__(self, key: str) -> Any:
+ OceanLaunchSpecCreateOptions.__key_warning(key)
+ return super().__getitem__(key)
+
+ def get(self, key: str, default = None) -> Any:
+ OceanLaunchSpecCreateOptions.__key_warning(key)
+ return super().get(key, default)
+
+ def __init__(__self__, *,
+ initial_nodes: int):
+ """
+ :param int initial_nodes: When set to an integer greater than 0, a corresponding amount of nodes will be launched from the created virtual node group.
+ """
+ pulumi.set(__self__, "initial_nodes", initial_nodes)
+
+ @property
+ @pulumi.getter(name="initialNodes")
+ def initial_nodes(self) -> int:
+ """
+ When set to an integer greater than 0, a corresponding amount of nodes will be launched from the created virtual node group.
+ """
+ return pulumi.get(self, "initial_nodes")
+
+
@pulumi.output_type
class OceanLaunchSpecElasticIpPool(dict):
@staticmethod
diff --git a/sdk/python/pulumi_spotinst/gke/_inputs.py b/sdk/python/pulumi_spotinst/gke/_inputs.py
index c82f98ee..0d54f7f8 100644
--- a/sdk/python/pulumi_spotinst/gke/_inputs.py
+++ b/sdk/python/pulumi_spotinst/gke/_inputs.py
@@ -41,6 +41,7 @@
'OceanLaunchSpecAutoscaleHeadroomArgs',
'OceanLaunchSpecLabelArgs',
'OceanLaunchSpecMetadataArgs',
+ 'OceanLaunchSpecStrategyArgs',
'OceanLaunchSpecTaintArgs',
]
@@ -1851,6 +1852,29 @@ def value(self, value: pulumi.Input[str]):
pulumi.set(self, "value", value)
+@pulumi.input_type
+class OceanLaunchSpecStrategyArgs:
+ def __init__(__self__, *,
+ preemptible_percentage: Optional[pulumi.Input[int]] = None):
+ """
+ :param pulumi.Input[int] preemptible_percentage: Defines the desired preemptible percentage for this launch specification.
+ """
+ if preemptible_percentage is not None:
+ pulumi.set(__self__, "preemptible_percentage", preemptible_percentage)
+
+ @property
+ @pulumi.getter(name="preemptiblePercentage")
+ def preemptible_percentage(self) -> Optional[pulumi.Input[int]]:
+ """
+ Defines the desired preemptible percentage for this launch specification.
+ """
+ return pulumi.get(self, "preemptible_percentage")
+
+ @preemptible_percentage.setter
+ def preemptible_percentage(self, value: Optional[pulumi.Input[int]]):
+ pulumi.set(self, "preemptible_percentage", value)
+
+
@pulumi.input_type
class OceanLaunchSpecTaintArgs:
def __init__(__self__, *,
diff --git a/sdk/python/pulumi_spotinst/gke/ocean_launch_spec.py b/sdk/python/pulumi_spotinst/gke/ocean_launch_spec.py
index 27b32271..ab01791d 100644
--- a/sdk/python/pulumi_spotinst/gke/ocean_launch_spec.py
+++ b/sdk/python/pulumi_spotinst/gke/ocean_launch_spec.py
@@ -21,15 +21,17 @@ def __init__(__self__, *,
autoscale_headrooms: Optional[pulumi.Input[Sequence[pulumi.Input['OceanLaunchSpecAutoscaleHeadroomArgs']]]] = None,
labels: Optional[pulumi.Input[Sequence[pulumi.Input['OceanLaunchSpecLabelArgs']]]] = None,
restrict_scale_down: Optional[pulumi.Input[bool]] = None,
+ strategies: Optional[pulumi.Input[Sequence[pulumi.Input['OceanLaunchSpecStrategyArgs']]]] = None,
taints: Optional[pulumi.Input[Sequence[pulumi.Input['OceanLaunchSpecTaintArgs']]]] = None):
"""
The set of arguments for constructing a OceanLaunchSpec resource.
:param pulumi.Input[Sequence[pulumi.Input['OceanLaunchSpecMetadataArgs']]] metadatas: Cluster's metadata.
- :param pulumi.Input[str] ocean_id: The Ocean cluster ID required for launchSpec create.
+ :param pulumi.Input[str] ocean_id: The Ocean cluster ID.
:param pulumi.Input[str] source_image: Image URL.
:param pulumi.Input[Sequence[pulumi.Input['OceanLaunchSpecAutoscaleHeadroomArgs']]] autoscale_headrooms: Set custom headroom per launch spec. provide list of headrooms object.
:param pulumi.Input[Sequence[pulumi.Input['OceanLaunchSpecLabelArgs']]] labels: Optionally adds labels to instances launched in an Ocean cluster.
:param pulumi.Input[bool] restrict_scale_down: Boolean. When set to `true`, VNG nodes will be treated as if all pods running have the restrict-scale-down label. Therefore, Ocean will not scale nodes down unless empty.
+ :param pulumi.Input[Sequence[pulumi.Input['OceanLaunchSpecStrategyArgs']]] strategies: The Ocean Launch Spec Strategy object.
:param pulumi.Input[Sequence[pulumi.Input['OceanLaunchSpecTaintArgs']]] taints: Optionally adds labels to instances launched in an Ocean cluster.
"""
pulumi.set(__self__, "metadatas", metadatas)
@@ -41,6 +43,8 @@ def __init__(__self__, *,
pulumi.set(__self__, "labels", labels)
if restrict_scale_down is not None:
pulumi.set(__self__, "restrict_scale_down", restrict_scale_down)
+ if strategies is not None:
+ pulumi.set(__self__, "strategies", strategies)
if taints is not None:
pulumi.set(__self__, "taints", taints)
@@ -60,7 +64,7 @@ def metadatas(self, value: pulumi.Input[Sequence[pulumi.Input['OceanLaunchSpecMe
@pulumi.getter(name="oceanId")
def ocean_id(self) -> pulumi.Input[str]:
"""
- The Ocean cluster ID required for launchSpec create.
+ The Ocean cluster ID.
"""
return pulumi.get(self, "ocean_id")
@@ -116,6 +120,18 @@ def restrict_scale_down(self) -> Optional[pulumi.Input[bool]]:
def restrict_scale_down(self, value: Optional[pulumi.Input[bool]]):
pulumi.set(self, "restrict_scale_down", value)
+ @property
+ @pulumi.getter
+ def strategies(self) -> Optional[pulumi.Input[Sequence[pulumi.Input['OceanLaunchSpecStrategyArgs']]]]:
+ """
+ The Ocean Launch Spec Strategy object.
+ """
+ return pulumi.get(self, "strategies")
+
+ @strategies.setter
+ def strategies(self, value: Optional[pulumi.Input[Sequence[pulumi.Input['OceanLaunchSpecStrategyArgs']]]]):
+ pulumi.set(self, "strategies", value)
+
@property
@pulumi.getter
def taints(self) -> Optional[pulumi.Input[Sequence[pulumi.Input['OceanLaunchSpecTaintArgs']]]]:
@@ -138,15 +154,17 @@ def __init__(__self__, *,
ocean_id: Optional[pulumi.Input[str]] = None,
restrict_scale_down: Optional[pulumi.Input[bool]] = None,
source_image: Optional[pulumi.Input[str]] = None,
+ strategies: Optional[pulumi.Input[Sequence[pulumi.Input['OceanLaunchSpecStrategyArgs']]]] = None,
taints: Optional[pulumi.Input[Sequence[pulumi.Input['OceanLaunchSpecTaintArgs']]]] = None):
"""
Input properties used for looking up and filtering OceanLaunchSpec resources.
:param pulumi.Input[Sequence[pulumi.Input['OceanLaunchSpecAutoscaleHeadroomArgs']]] autoscale_headrooms: Set custom headroom per launch spec. provide list of headrooms object.
:param pulumi.Input[Sequence[pulumi.Input['OceanLaunchSpecLabelArgs']]] labels: Optionally adds labels to instances launched in an Ocean cluster.
:param pulumi.Input[Sequence[pulumi.Input['OceanLaunchSpecMetadataArgs']]] metadatas: Cluster's metadata.
- :param pulumi.Input[str] ocean_id: The Ocean cluster ID required for launchSpec create.
+ :param pulumi.Input[str] ocean_id: The Ocean cluster ID.
:param pulumi.Input[bool] restrict_scale_down: Boolean. When set to `true`, VNG nodes will be treated as if all pods running have the restrict-scale-down label. Therefore, Ocean will not scale nodes down unless empty.
:param pulumi.Input[str] source_image: Image URL.
+ :param pulumi.Input[Sequence[pulumi.Input['OceanLaunchSpecStrategyArgs']]] strategies: The Ocean Launch Spec Strategy object.
:param pulumi.Input[Sequence[pulumi.Input['OceanLaunchSpecTaintArgs']]] taints: Optionally adds labels to instances launched in an Ocean cluster.
"""
if autoscale_headrooms is not None:
@@ -161,6 +179,8 @@ def __init__(__self__, *,
pulumi.set(__self__, "restrict_scale_down", restrict_scale_down)
if source_image is not None:
pulumi.set(__self__, "source_image", source_image)
+ if strategies is not None:
+ pulumi.set(__self__, "strategies", strategies)
if taints is not None:
pulumi.set(__self__, "taints", taints)
@@ -204,7 +224,7 @@ def metadatas(self, value: Optional[pulumi.Input[Sequence[pulumi.Input['OceanLau
@pulumi.getter(name="oceanId")
def ocean_id(self) -> Optional[pulumi.Input[str]]:
"""
- The Ocean cluster ID required for launchSpec create.
+ The Ocean cluster ID.
"""
return pulumi.get(self, "ocean_id")
@@ -236,6 +256,18 @@ def source_image(self) -> Optional[pulumi.Input[str]]:
def source_image(self, value: Optional[pulumi.Input[str]]):
pulumi.set(self, "source_image", value)
+ @property
+ @pulumi.getter
+ def strategies(self) -> Optional[pulumi.Input[Sequence[pulumi.Input['OceanLaunchSpecStrategyArgs']]]]:
+ """
+ The Ocean Launch Spec Strategy object.
+ """
+ return pulumi.get(self, "strategies")
+
+ @strategies.setter
+ def strategies(self, value: Optional[pulumi.Input[Sequence[pulumi.Input['OceanLaunchSpecStrategyArgs']]]]):
+ pulumi.set(self, "strategies", value)
+
@property
@pulumi.getter
def taints(self) -> Optional[pulumi.Input[Sequence[pulumi.Input['OceanLaunchSpecTaintArgs']]]]:
@@ -260,6 +292,7 @@ def __init__(__self__,
ocean_id: Optional[pulumi.Input[str]] = None,
restrict_scale_down: Optional[pulumi.Input[bool]] = None,
source_image: Optional[pulumi.Input[str]] = None,
+ strategies: Optional[pulumi.Input[Sequence[pulumi.Input[pulumi.InputType['OceanLaunchSpecStrategyArgs']]]]] = None,
taints: Optional[pulumi.Input[Sequence[pulumi.Input[pulumi.InputType['OceanLaunchSpecTaintArgs']]]]] = None,
__props__=None):
"""
@@ -289,6 +322,9 @@ def __init__(__self__,
ocean_id="o-123456",
restrict_scale_down=True,
source_image="image",
+ strategies=[spotinst.gke.OceanLaunchSpecStrategyArgs(
+ preemptible_percentage=30,
+ )],
taints=[spotinst.gke.OceanLaunchSpecTaintArgs(
effect="taintEffect",
key="taintKey",
@@ -306,9 +342,10 @@ def __init__(__self__,
:param pulumi.Input[Sequence[pulumi.Input[pulumi.InputType['OceanLaunchSpecAutoscaleHeadroomArgs']]]] autoscale_headrooms: Set custom headroom per launch spec. provide list of headrooms object.
:param pulumi.Input[Sequence[pulumi.Input[pulumi.InputType['OceanLaunchSpecLabelArgs']]]] labels: Optionally adds labels to instances launched in an Ocean cluster.
:param pulumi.Input[Sequence[pulumi.Input[pulumi.InputType['OceanLaunchSpecMetadataArgs']]]] metadatas: Cluster's metadata.
- :param pulumi.Input[str] ocean_id: The Ocean cluster ID required for launchSpec create.
+ :param pulumi.Input[str] ocean_id: The Ocean cluster ID.
:param pulumi.Input[bool] restrict_scale_down: Boolean. When set to `true`, VNG nodes will be treated as if all pods running have the restrict-scale-down label. Therefore, Ocean will not scale nodes down unless empty.
:param pulumi.Input[str] source_image: Image URL.
+ :param pulumi.Input[Sequence[pulumi.Input[pulumi.InputType['OceanLaunchSpecStrategyArgs']]]] strategies: The Ocean Launch Spec Strategy object.
:param pulumi.Input[Sequence[pulumi.Input[pulumi.InputType['OceanLaunchSpecTaintArgs']]]] taints: Optionally adds labels to instances launched in an Ocean cluster.
"""
...
@@ -344,6 +381,9 @@ def __init__(__self__,
ocean_id="o-123456",
restrict_scale_down=True,
source_image="image",
+ strategies=[spotinst.gke.OceanLaunchSpecStrategyArgs(
+ preemptible_percentage=30,
+ )],
taints=[spotinst.gke.OceanLaunchSpecTaintArgs(
effect="taintEffect",
key="taintKey",
@@ -377,6 +417,7 @@ def _internal_init(__self__,
ocean_id: Optional[pulumi.Input[str]] = None,
restrict_scale_down: Optional[pulumi.Input[bool]] = None,
source_image: Optional[pulumi.Input[str]] = None,
+ strategies: Optional[pulumi.Input[Sequence[pulumi.Input[pulumi.InputType['OceanLaunchSpecStrategyArgs']]]]] = None,
taints: Optional[pulumi.Input[Sequence[pulumi.Input[pulumi.InputType['OceanLaunchSpecTaintArgs']]]]] = None,
__props__=None):
if opts is None:
@@ -402,6 +443,7 @@ def _internal_init(__self__,
if source_image is None and not opts.urn:
raise TypeError("Missing required property 'source_image'")
__props__.__dict__["source_image"] = source_image
+ __props__.__dict__["strategies"] = strategies
__props__.__dict__["taints"] = taints
super(OceanLaunchSpec, __self__).__init__(
'spotinst:gke/oceanLaunchSpec:OceanLaunchSpec',
@@ -419,6 +461,7 @@ def get(resource_name: str,
ocean_id: Optional[pulumi.Input[str]] = None,
restrict_scale_down: Optional[pulumi.Input[bool]] = None,
source_image: Optional[pulumi.Input[str]] = None,
+ strategies: Optional[pulumi.Input[Sequence[pulumi.Input[pulumi.InputType['OceanLaunchSpecStrategyArgs']]]]] = None,
taints: Optional[pulumi.Input[Sequence[pulumi.Input[pulumi.InputType['OceanLaunchSpecTaintArgs']]]]] = None) -> 'OceanLaunchSpec':
"""
Get an existing OceanLaunchSpec resource's state with the given name, id, and optional extra
@@ -430,9 +473,10 @@ def get(resource_name: str,
:param pulumi.Input[Sequence[pulumi.Input[pulumi.InputType['OceanLaunchSpecAutoscaleHeadroomArgs']]]] autoscale_headrooms: Set custom headroom per launch spec. provide list of headrooms object.
:param pulumi.Input[Sequence[pulumi.Input[pulumi.InputType['OceanLaunchSpecLabelArgs']]]] labels: Optionally adds labels to instances launched in an Ocean cluster.
:param pulumi.Input[Sequence[pulumi.Input[pulumi.InputType['OceanLaunchSpecMetadataArgs']]]] metadatas: Cluster's metadata.
- :param pulumi.Input[str] ocean_id: The Ocean cluster ID required for launchSpec create.
+ :param pulumi.Input[str] ocean_id: The Ocean cluster ID.
:param pulumi.Input[bool] restrict_scale_down: Boolean. When set to `true`, VNG nodes will be treated as if all pods running have the restrict-scale-down label. Therefore, Ocean will not scale nodes down unless empty.
:param pulumi.Input[str] source_image: Image URL.
+ :param pulumi.Input[Sequence[pulumi.Input[pulumi.InputType['OceanLaunchSpecStrategyArgs']]]] strategies: The Ocean Launch Spec Strategy object.
:param pulumi.Input[Sequence[pulumi.Input[pulumi.InputType['OceanLaunchSpecTaintArgs']]]] taints: Optionally adds labels to instances launched in an Ocean cluster.
"""
opts = pulumi.ResourceOptions.merge(opts, pulumi.ResourceOptions(id=id))
@@ -445,6 +489,7 @@ def get(resource_name: str,
__props__.__dict__["ocean_id"] = ocean_id
__props__.__dict__["restrict_scale_down"] = restrict_scale_down
__props__.__dict__["source_image"] = source_image
+ __props__.__dict__["strategies"] = strategies
__props__.__dict__["taints"] = taints
return OceanLaunchSpec(resource_name, opts=opts, __props__=__props__)
@@ -476,7 +521,7 @@ def metadatas(self) -> pulumi.Output[Sequence['outputs.OceanLaunchSpecMetadata']
@pulumi.getter(name="oceanId")
def ocean_id(self) -> pulumi.Output[str]:
"""
- The Ocean cluster ID required for launchSpec create.
+ The Ocean cluster ID.
"""
return pulumi.get(self, "ocean_id")
@@ -496,6 +541,14 @@ def source_image(self) -> pulumi.Output[str]:
"""
return pulumi.get(self, "source_image")
+ @property
+ @pulumi.getter
+ def strategies(self) -> pulumi.Output[Optional[Sequence['outputs.OceanLaunchSpecStrategy']]]:
+ """
+ The Ocean Launch Spec Strategy object.
+ """
+ return pulumi.get(self, "strategies")
+
@property
@pulumi.getter
def taints(self) -> pulumi.Output[Optional[Sequence['outputs.OceanLaunchSpecTaint']]]:
diff --git a/sdk/python/pulumi_spotinst/gke/outputs.py b/sdk/python/pulumi_spotinst/gke/outputs.py
index f9894c83..30755632 100644
--- a/sdk/python/pulumi_spotinst/gke/outputs.py
+++ b/sdk/python/pulumi_spotinst/gke/outputs.py
@@ -42,6 +42,7 @@
'OceanLaunchSpecAutoscaleHeadroom',
'OceanLaunchSpecLabel',
'OceanLaunchSpecMetadata',
+ 'OceanLaunchSpecStrategy',
'OceanLaunchSpecTaint',
]
@@ -1819,6 +1820,42 @@ def value(self) -> str:
return pulumi.get(self, "value")
+@pulumi.output_type
+class OceanLaunchSpecStrategy(dict):
+ @staticmethod
+ def __key_warning(key: str):
+ suggest = None
+ if key == "preemptiblePercentage":
+ suggest = "preemptible_percentage"
+
+ if suggest:
+ pulumi.log.warn(f"Key '{key}' not found in OceanLaunchSpecStrategy. Access the value via the '{suggest}' property getter instead.")
+
+ def __getitem__(self, key: str) -> Any:
+ OceanLaunchSpecStrategy.__key_warning(key)
+ return super().__getitem__(key)
+
+ def get(self, key: str, default = None) -> Any:
+ OceanLaunchSpecStrategy.__key_warning(key)
+ return super().get(key, default)
+
+ def __init__(__self__, *,
+ preemptible_percentage: Optional[int] = None):
+ """
+ :param int preemptible_percentage: Defines the desired preemptible percentage for this launch specification.
+ """
+ if preemptible_percentage is not None:
+ pulumi.set(__self__, "preemptible_percentage", preemptible_percentage)
+
+ @property
+ @pulumi.getter(name="preemptiblePercentage")
+ def preemptible_percentage(self) -> Optional[int]:
+ """
+ Defines the desired preemptible percentage for this launch specification.
+ """
+ return pulumi.get(self, "preemptible_percentage")
+
+
@pulumi.output_type
class OceanLaunchSpecTaint(dict):
def __init__(__self__, *,