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__, *,