{
  "name": "iterative",
  "version": "0.11.20",
  "description": "A Pulumi provider dynamically bridged from iterative.",
  "attribution": "This Pulumi package is based on the [`iterative` Terraform Provider](https://github.com/iterative/terraform-provider-iterative).",
  "repository": "https://github.com/iterative/terraform-provider-iterative",
  "publisher": "iterative",
  "meta": {
    "moduleFormat": "(.*)(?:/[^/]*)"
  },
  "language": {
    "csharp": {
      "compatibility": "tfbridge20",
      "liftSingleValueMethodReturns": true,
      "respectSchemaVersion": true
    },
    "go": {
      "importBasePath": "github.com/pulumi/pulumi-terraform-provider/sdks/go/iterative/iterative",
      "rootPackageName": "iterative",
      "liftSingleValueMethodReturns": true,
      "generateExtraInputTypes": true,
      "respectSchemaVersion": true
    },
    "java": {
      "basePackage": "",
      "buildFiles": "",
      "gradleNexusPublishPluginVersion": "",
      "gradleTest": ""
    },
    "nodejs": {
      "packageDescription": "A Pulumi provider dynamically bridged from iterative.",
      "readme": "> This provider is a derived work of the [Terraform Provider](https://github.com/iterative/terraform-provider-iterative)\n> distributed under [MPL 2.0](https://www.mozilla.org/en-US/MPL/2.0/). If you encounter a bug or missing feature,\n> please consult the source [`terraform-provider-iterative` repo](https://github.com/iterative/terraform-provider-iterative/issues).",
      "compatibility": "tfbridge20",
      "disableUnionOutputTypes": true,
      "liftSingleValueMethodReturns": true,
      "respectSchemaVersion": true
    },
    "python": {
      "readme": "> This provider is a derived work of the [Terraform Provider](https://github.com/iterative/terraform-provider-iterative)\n> distributed under [MPL 2.0](https://www.mozilla.org/en-US/MPL/2.0/). If you encounter a bug or missing feature,\n> please consult the source [`terraform-provider-iterative` repo](https://github.com/iterative/terraform-provider-iterative/issues).",
      "compatibility": "tfbridge20",
      "respectSchemaVersion": true,
      "pyproject": {
        "enabled": true
      }
    }
  },
  "config": {},
  "types": {
    "iterative:index/CmlRunnerTimeouts:CmlRunnerTimeouts": {
      "properties": {
        "create": {
          "type": "string"
        },
        "delete": {
          "type": "string"
        },
        "update": {
          "type": "string"
        }
      },
      "type": "object"
    },
    "iterative:index/MachineTimeouts:MachineTimeouts": {
      "properties": {
        "create": {
          "type": "string"
        },
        "delete": {
          "type": "string"
        }
      },
      "type": "object"
    },
    "iterative:index/TaskStorage:TaskStorage": {
      "properties": {
        "container": {
          "type": "string"
        },
        "containerOpts": {
          "type": "object",
          "additionalProperties": {
            "type": "string"
          }
        },
        "excludes": {
          "type": "array",
          "items": {
            "type": "string"
          }
        },
        "output": {
          "type": "string"
        },
        "workdir": {
          "type": "string"
        }
      },
      "type": "object"
    },
    "iterative:index/TaskTimeouts:TaskTimeouts": {
      "properties": {
        "create": {
          "type": "string"
        },
        "delete": {
          "type": "string"
        },
        "read": {
          "type": "string"
        },
        "update": {
          "type": "string"
        }
      },
      "type": "object"
    }
  },
  "provider": {
    "description": "The provider type for the iterative package. By default, resources use package-wide configuration\nsettings, however an explicit `Provider` instance may be created and passed during resource\nconstruction to achieve fine-grained programmatic control over provider settings. See the\n[documentation](https://www.pulumi.com/docs/reference/programming-model/#providers) for more information.\n",
    "type": "object"
  },
  "resources": {
    "iterative:index/cmlRunner:CmlRunner": {
      "properties": {
        "awsSecurityGroup": {
          "type": "string"
        },
        "awsSubnetId": {
          "type": "string"
        },
        "cloud": {
          "type": "string"
        },
        "cmlRunnerId": {
          "type": "string"
        },
        "cmlVersion": {
          "type": "string"
        },
        "dockerVolumes": {
          "type": "array",
          "items": {
            "type": "string"
          }
        },
        "driver": {
          "type": "string"
        },
        "idleTimeout": {
          "type": "number"
        },
        "image": {
          "type": "string"
        },
        "instanceGpu": {
          "type": "string"
        },
        "instanceHddSize": {
          "type": "number"
        },
        "instanceIp": {
          "type": "string"
        },
        "instanceLaunchTime": {
          "type": "string"
        },
        "instancePermissionSet": {
          "type": "string"
        },
        "instanceType": {
          "type": "string"
        },
        "kubernetesNodeSelector": {
          "type": "object",
          "additionalProperties": {
            "type": "string"
          }
        },
        "labels": {
          "type": "string"
        },
        "metadata": {
          "type": "object",
          "additionalProperties": {
            "type": "string"
          }
        },
        "name": {
          "type": "string"
        },
        "region": {
          "type": "string"
        },
        "repo": {
          "type": "string"
        },
        "single": {
          "type": "boolean"
        },
        "spot": {
          "type": "boolean"
        },
        "spotPrice": {
          "type": "number"
        },
        "sshPrivate": {
          "type": "string",
          "secret": true
        },
        "sshPublic": {
          "type": "string"
        },
        "startupScript": {
          "type": "string",
          "secret": true
        },
        "timeouts": {
          "$ref": "#/types/iterative:index%2FCmlRunnerTimeouts:CmlRunnerTimeouts"
        },
        "token": {
          "type": "string",
          "secret": true
        }
      },
      "type": "object",
      "required": [
        "cmlRunnerId",
        "driver",
        "instanceIp",
        "instanceLaunchTime",
        "name",
        "repo",
        "sshPublic"
      ],
      "inputProperties": {
        "awsSecurityGroup": {
          "type": "string"
        },
        "awsSubnetId": {
          "type": "string"
        },
        "cloud": {
          "type": "string"
        },
        "cmlRunnerId": {
          "type": "string"
        },
        "cmlVersion": {
          "type": "string"
        },
        "dockerVolumes": {
          "type": "array",
          "items": {
            "type": "string"
          }
        },
        "driver": {
          "type": "string"
        },
        "idleTimeout": {
          "type": "number"
        },
        "image": {
          "type": "string"
        },
        "instanceGpu": {
          "type": "string"
        },
        "instanceHddSize": {
          "type": "number"
        },
        "instancePermissionSet": {
          "type": "string"
        },
        "instanceType": {
          "type": "string"
        },
        "kubernetesNodeSelector": {
          "type": "object",
          "additionalProperties": {
            "type": "string"
          }
        },
        "labels": {
          "type": "string"
        },
        "metadata": {
          "type": "object",
          "additionalProperties": {
            "type": "string"
          }
        },
        "name": {
          "type": "string"
        },
        "region": {
          "type": "string"
        },
        "repo": {
          "type": "string"
        },
        "single": {
          "type": "boolean"
        },
        "spot": {
          "type": "boolean"
        },
        "spotPrice": {
          "type": "number"
        },
        "sshPrivate": {
          "type": "string",
          "secret": true
        },
        "startupScript": {
          "type": "string",
          "secret": true
        },
        "timeouts": {
          "$ref": "#/types/iterative:index%2FCmlRunnerTimeouts:CmlRunnerTimeouts"
        },
        "token": {
          "type": "string",
          "secret": true
        }
      },
      "requiredInputs": [
        "driver",
        "repo"
      ],
      "stateInputs": {
        "description": "Input properties used for looking up and filtering CmlRunner resources.\n",
        "properties": {
          "awsSecurityGroup": {
            "type": "string"
          },
          "awsSubnetId": {
            "type": "string"
          },
          "cloud": {
            "type": "string"
          },
          "cmlRunnerId": {
            "type": "string"
          },
          "cmlVersion": {
            "type": "string"
          },
          "dockerVolumes": {
            "type": "array",
            "items": {
              "type": "string"
            }
          },
          "driver": {
            "type": "string"
          },
          "idleTimeout": {
            "type": "number"
          },
          "image": {
            "type": "string"
          },
          "instanceGpu": {
            "type": "string"
          },
          "instanceHddSize": {
            "type": "number"
          },
          "instanceIp": {
            "type": "string"
          },
          "instanceLaunchTime": {
            "type": "string"
          },
          "instancePermissionSet": {
            "type": "string"
          },
          "instanceType": {
            "type": "string"
          },
          "kubernetesNodeSelector": {
            "type": "object",
            "additionalProperties": {
              "type": "string"
            }
          },
          "labels": {
            "type": "string"
          },
          "metadata": {
            "type": "object",
            "additionalProperties": {
              "type": "string"
            }
          },
          "name": {
            "type": "string"
          },
          "region": {
            "type": "string"
          },
          "repo": {
            "type": "string"
          },
          "single": {
            "type": "boolean"
          },
          "spot": {
            "type": "boolean"
          },
          "spotPrice": {
            "type": "number"
          },
          "sshPrivate": {
            "type": "string",
            "secret": true
          },
          "sshPublic": {
            "type": "string"
          },
          "startupScript": {
            "type": "string",
            "secret": true
          },
          "timeouts": {
            "$ref": "#/types/iterative:index%2FCmlRunnerTimeouts:CmlRunnerTimeouts"
          },
          "token": {
            "type": "string",
            "secret": true
          }
        },
        "type": "object"
      }
    },
    "iterative:index/machine:Machine": {
      "properties": {
        "awsSecurityGroup": {
          "type": "string"
        },
        "awsSubnetId": {
          "type": "string"
        },
        "cloud": {
          "type": "string"
        },
        "image": {
          "type": "string"
        },
        "instanceGpu": {
          "type": "string"
        },
        "instanceHddSize": {
          "type": "number"
        },
        "instanceIp": {
          "type": "string"
        },
        "instanceLaunchTime": {
          "type": "string"
        },
        "instancePermissionSet": {
          "type": "string"
        },
        "instanceType": {
          "type": "string"
        },
        "kubernetesNodeSelector": {
          "type": "object",
          "additionalProperties": {
            "type": "string"
          }
        },
        "machineId": {
          "type": "string"
        },
        "metadata": {
          "type": "object",
          "additionalProperties": {
            "type": "string"
          }
        },
        "name": {
          "type": "string"
        },
        "region": {
          "type": "string"
        },
        "spot": {
          "type": "boolean"
        },
        "spotPrice": {
          "type": "number"
        },
        "sshName": {
          "type": "string"
        },
        "sshPrivate": {
          "type": "string",
          "secret": true
        },
        "sshPublic": {
          "type": "string"
        },
        "startupScript": {
          "type": "string",
          "secret": true
        },
        "timeouts": {
          "$ref": "#/types/iterative:index%2FMachineTimeouts:MachineTimeouts"
        }
      },
      "type": "object",
      "required": [
        "instanceIp",
        "instanceLaunchTime",
        "machineId",
        "name",
        "sshName",
        "sshPublic"
      ],
      "inputProperties": {
        "awsSecurityGroup": {
          "type": "string"
        },
        "awsSubnetId": {
          "type": "string"
        },
        "cloud": {
          "type": "string"
        },
        "image": {
          "type": "string"
        },
        "instanceGpu": {
          "type": "string"
        },
        "instanceHddSize": {
          "type": "number"
        },
        "instancePermissionSet": {
          "type": "string"
        },
        "instanceType": {
          "type": "string"
        },
        "kubernetesNodeSelector": {
          "type": "object",
          "additionalProperties": {
            "type": "string"
          }
        },
        "machineId": {
          "type": "string"
        },
        "metadata": {
          "type": "object",
          "additionalProperties": {
            "type": "string"
          }
        },
        "name": {
          "type": "string"
        },
        "region": {
          "type": "string"
        },
        "spot": {
          "type": "boolean"
        },
        "spotPrice": {
          "type": "number"
        },
        "sshPrivate": {
          "type": "string",
          "secret": true
        },
        "startupScript": {
          "type": "string",
          "secret": true
        },
        "timeouts": {
          "$ref": "#/types/iterative:index%2FMachineTimeouts:MachineTimeouts"
        }
      },
      "stateInputs": {
        "description": "Input properties used for looking up and filtering Machine resources.\n",
        "properties": {
          "awsSecurityGroup": {
            "type": "string"
          },
          "awsSubnetId": {
            "type": "string"
          },
          "cloud": {
            "type": "string"
          },
          "image": {
            "type": "string"
          },
          "instanceGpu": {
            "type": "string"
          },
          "instanceHddSize": {
            "type": "number"
          },
          "instanceIp": {
            "type": "string"
          },
          "instanceLaunchTime": {
            "type": "string"
          },
          "instancePermissionSet": {
            "type": "string"
          },
          "instanceType": {
            "type": "string"
          },
          "kubernetesNodeSelector": {
            "type": "object",
            "additionalProperties": {
              "type": "string"
            }
          },
          "machineId": {
            "type": "string"
          },
          "metadata": {
            "type": "object",
            "additionalProperties": {
              "type": "string"
            }
          },
          "name": {
            "type": "string"
          },
          "region": {
            "type": "string"
          },
          "spot": {
            "type": "boolean"
          },
          "spotPrice": {
            "type": "number"
          },
          "sshName": {
            "type": "string"
          },
          "sshPrivate": {
            "type": "string",
            "secret": true
          },
          "sshPublic": {
            "type": "string"
          },
          "startupScript": {
            "type": "string",
            "secret": true
          },
          "timeouts": {
            "$ref": "#/types/iterative:index%2FMachineTimeouts:MachineTimeouts"
          }
        },
        "type": "object"
      }
    },
    "iterative:index/task:Task": {
      "description": "## # Task Resource\n\nThis resource will:\n\n1. Create cloud resources (machines and storage) for the task.\n2. Upload the given `storage.workdir` to the cloud storage.\n3. Run the given `script` on the cloud machine until completion or `timeout`.\n4. Download results to the given `storage.output`.\n\n{{% examples %}}\n## Example Usage\n\n```hcl\nresource \"iterative_task\" \"example\" {\n  cloud       = \"aws\"     # or any of: gcp, az, k8s\n  machine     = \"m\"       # medium. Or any of: l, xl, m+k80, xl+v100, ...\n  image       = \"ubuntu\"  # or \"nvidia\", ...\n  region      = \"us-west\" # or \"us-east\", \"eu-west\", ...\n  disk_size   = -1        # GB. Default -1 for automatic\n  spot        = 0         # auto-price. Default -1 to disable, or >0 for hourly USD limit\n  parallelism = 1\n  timeout     = 86400     # max 24h before forced termination\n\n  environment = { GREETING = \"Hello, world!\" }\n  storage {\n    workdir = \".\"         # default blank (don't upload)\n    output  = \"results\"   # default blank (don't download). Relative to workdir\n    exclude = [\".dvc/cache\", \"results/tempfile\", \"*.pyc\"]\n  }\n  script = <<-END\n    #!/bin/bash\n\n    # create output directory if needed\n    mkdir -p results\n    echo \"$GREETING\" | tee results/$(uuidgen)\n    # read last result (in case of spot/preemptible instance recovery)\n    if test -f results/epoch.txt; then EPOCH=\"$(cat results/epoch.txt)\"; fi\n    EPOCH=$${EPOCH:-1}  # start from 1 if last result not found\n\n    echo \"(re)starting training loop from $EPOCH up to 1337 epochs\"\n    for epoch in $(seq $EPOCH 1337); do\n      sleep 1\n      echo \"$epoch\" | tee results/epoch.txt\n    done\n  END\n  # or: script = file(\"example.sh\")\n}\n```\n\n## Machine Type\n\n### Generic\n\nThe Iterative Provider offers some common machine types (medium, large, and extra large) which are roughly the same for all supported clouds.\n\n| Type      | Minimum CPU cores | Minimum RAM | GPU                 |\n| :-------- | ----------------: | ----------: | :------------------ |\n| `s`       |                 1 |        1 GB | -                   |\n| `m`       |                 8 |       16 GB | -                   |\n| `l`       |                32 |       64 GB | -                   |\n| `xl`      |                64 |      128 GB | -                   |\n| `m+t4`    |                 4 |       16 GB | 1 NVIDIA Tesla T4   |\n| `m+k80`   |                 4 |       53 GB | 1 NVIDIA Tesla K80  |\n| `l+k80`   |                12 |      112 GB | 2 NVIDIA Tesla K80  |\n| `xl+k80`  |                24 |      212 GB | 4 NVIDIA Tesla K80  |\n| `m+v100`  |                 4 |       61 GB | 1 NVIDIA Tesla V100 |\n| `l+v100`  |                12 |      224 GB | 2 NVIDIA Tesla V100 |\n| `xl+v100` |                24 |      448 GB | 4 NVIDIA Tesla V100 |\n\nSee Generic Machine Types for exact specifications for each cloud.\n\n### Cloud-specific\n\nIn addition to generic types, it's possible to specify any machine type supported by the underlying cloud provider.\n\n#### Amazon Web Services\n\n- `{machine}` - Any [EC2 instance type](https://aws.amazon.com/ec2/instance-explorer) (e.g. `g4dn.xlarge`).\n\n#### Microsoft Azure\n\n- `{machine}` - Any [Azure VM](https://azure.microsoft.com/en-us/pricing/vm-selector) (e.g. `Standard_F8s_v2`).\n\n#### Google Cloud Platform\n\n- `{machine}` - Any [GCP machine type](https://cloud.google.com/compute/docs/machine-types) (e.g. `n2-custom-64-262144`).\n- `{machine}+{accelerator}*{count}` - Any machine and accelerator combination (e.g. `custom-8-53248+nvidia-tesla-k80*1`).\n\n#### Kubernetes\n\n- `{cpu}-{memory}` - Any [CPU & memory combination](https://kubernetes.io/docs/concepts/configuration/manage-resources-containers) (e.g. `64-256000`).\n- `{cpu}-{memory}+{accelerator}*{count}` - Any CPU, memory, & [accelerator](https://kubernetes.io/docs/tasks/manage-gpus/scheduling-gpus) combination (e.g. `64-256000+nvidia-tesla-k80*1`).\n\n> **Note:** Specified resource amounts are considered **limits** (rather than **requests**).\n\n> **Note:** `{accelerator}` will be transformed into a node selector requesting `accelerator={accelerator}` and `{count}` will be configured as the **limits** count for `kubernetes.io/gpu`.\n\n## Machine Image\n\n### Generic\n\nThe Iterative Provider offers some common machine images which are roughly the same for all supported clouds.\n\n- `ubuntu` - Official [Ubuntu LTS](https://wiki.ubuntu.com/LTS) image (currently 20.04).\n- `nvidia` - Official Ubuntu LTS with NVIDIA GPU drivers and CUDA toolkit (currently 11.3).\n\n### Cloud-specific\n\nIn addition to generic images, it's possible to specify any machine image supported by the underlying cloud provider.\n\nImages should include, at least:\n\n- Linux\n- cloud-init\n- systemd\n- curl\n- unzip, python3 or python\n\n#### Amazon Web Services\n\n`{user}@{owner}:{architecture}:{name}`\n\nFields:\n\n- `{user}` - User name; e.g. `ubuntu`.\n- `{architecture}` - Image architecture; e.g. `x86_64` or `*` for any.\n- `{owner}` - Account number of the image owner; e.g. `099720109477` or `*` for any.\n- `{name}` - Name of the image; e.g. `*ubuntu/images/hvm-ssd/ubuntu-focal-20.04*`.\n\nSee https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/AMIs.html for more information.\n\n#### Google Cloud Platform\n\n`{user}@{project}/{family}`\n\nFields:\n\n- `{user}` - User name; e.g. `ubuntu`.\n- `{project}` - Project name; e.g. `ubuntu-os-cloud`.\n- `{family}` - Image architecture; e.g. `ubuntu-2004-lts`.\n\nSee https://cloud.google.com/compute/docs/images/os-details for more information.\n\n#### Microsoft Azure\n\n`{user}@{publisher}:{offer}:{sku}:{version}`\n\nFields:\n\n- `{user}` - User name; e.g. `ubuntu`.\n- `{publisher}` - Image publisher; e.g. `Canonical`.\n- `{offer}` - Image offer; e.g. `UbuntuServer`.\n- `{sku}` - Image SKU; e.g. `18.04-LTS`.\n- `{version}` - Image version; e.g. `latest`.\n\nSee https://docs.microsoft.com/en-us/azure/virtual-machines/linux/cli-ps-findimage for more information.\n\n### Kubernetes\n\n- `{image}` - Any [container image](https://kubernetes.io/docs/concepts/containers/images/#image-names).\n\n## Cloud Region\n\n### Generic\n\nThe Iterative Provider offers some common cloud regions which are roughly the same for all supported clouds.\n\n- `us-west` - United States of America, West.\n- `us-east` - United States of America, East.\n- `eu-north` - Europe, North.\n- `eu-west` - Europe, West.\n\n### Cloud-specific\n\nIn addition to generic regions, it's possible to specify any cloud region supported by the underlying cloud provider.\n\n#### Amazon Web Services\n\n- `{region}` - Any [AWS region](https://aws.amazon.com/about-aws/global-infrastructure/regions_az) (e.g. `us-east-1`).\n\n#### Google Cloud Platform\n\n- `{zone}` - Any [GCP **zone**](https://cloud.google.com/compute/docs/regions-zones) (not region) (e.g. `us-east1-a`).\n\n#### Microsoft Azure\n\n- `{region}` - Any [Azure region](https://azure.microsoft.com/en-us/global-infrastructure/geographies) (e.g. `eastus`).\n\n### Kubernetes\n\nFor Kubernetes, the `region` attribute can be used to set the [`nodeSelector`](https://kubernetes.io/docs/concepts/scheduling-eviction/assign-pod-node/#nodeselector) field of the job specification. The value of `region` should be a comma-delimited list of `key=value` nodel label pairs.\n\nFor example:\n```tf\nresource \"iterative_task\" \"example\" {\n  cloud  = \"k8s\"\n  region = \"foo=bar,goo=baz\"\n}\n```\n\nThis will create a pod with a `nodeSelector` value like the following:\n```yaml\napiVersion: V1\nkind: Pod\nspec:\n  nodeSelector:\n    foo: bar\n    goo: baz\n```\n\n## Permission Set\n\n### Generic\n\nA set of \"permissions\" assigned to the `task` instance, format depends on the cloud provider\n\n### Cloud-specific\n\n#### Kubernetes\n\nThe name of a service account in the current namespace.\n\n### Amazon Web Services\n\nAn [instance profile `arn`](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/iam-roles-for-amazon-ec2.html), e.g.:\n`permission_set = \"arn:aws:iam:1234567890:instance-profile/rolename\"`\n\n### Google Cloud Platform\n\nA service account email and a [list of scopes](https://cloud.google.com/sdk/gcloud/reference/alpha/compute/instances/set-scopes#--scopes), e.g.:\n`permission_set = \"sa-name@project_id.iam.gserviceaccount.com,scopes=storage-rw\"`\n\n### Microsoft Azure\nA comma-separated list of [user-assigned identity](https://docs.microsoft.com/en-us/azure/active-directory/managed-identities-azure-resources/overview) ARM resource ids, e.g.:\n`permission_set = \"/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.ManagedIdentity/userAssignedIdentities/{identityName}\"`\n\n## Pre-allocated blob container\n\n### Generic\n\nTo use a pre-allocated container for storing task data, specify the `container` key in the `storage` section\nof the config:\n\n```hcl\nresource \"iterative_task\" \"example\" {\n  (...)\n  storage {\n    container = \"container-name/path/path\"\n  }\n  (...)\n}\n```\n\nThe container name may include a path component, in this case the specified subdirectory will be used\nto store task execution results. Otherwise, a subdirectory will be created with a name matching the\ntask's randomly generated id.\n\nIf the container name is suffixed with a forward slash, (`container-name/`), the root of the container\nwill be used for storage.\n\n### Cloud-specific\n\n#### Amazon Web Services\n\nThe container name is the name of the S3 container. It should be in the same region as the task deployment.\n\n#### Google Cloud Platform\n\nThe container name is the name of the google cloud storage container.\n\n#### Kubernetes\n\nThe container name is the name of a predefined persistent volume claim.\n\n#### Microsoft Azure\n\nTo use a pre-allocated azure blob container, the storage account name and access key need to be specified in\nthe `storage` section:\n\n```\nresource \"iterative_task\" \"example\" {\n    (...)\n    storage {\n      container = \"container-name\"\n      container_opts = {\n        account = \"storage-account-name\"\n        key = \"storage-account-key\"\n      }\n    }\n    (...)\n}\n```\n\n## Known Issues\n\n### Kubernetes\n\n#### Directory storage\n\nUnlike public cloud providers, Kubernetes does not offer any portable way of persisting and sharing storage between pods. When specified, the `storage.workdir` attribute will create a `PersistentVolumeClaim` of the default `StorageClass`, with the same lifecycle as the task and the specified `disk_size`.\n\n> **Warning:** Access mode will be `ReadWriteOnce` if `parallelism=1` or `ReadWriteMany` otherwise.\n\n> **Note:** Rancher's [Local Path Provisioner](https://github.com/rancher/local-path-provisioner) might be the easiest way of deploying a quick `ReadWriteOnce` dynamically allocated storage solution for testing: just run `kubectl apply -f https://raw.githubusercontent.com/rancher/local-path-provisioner/master/deploy/local-path-storage.yaml`.\n\n{{% /examples %}}",
      "properties": {
        "addresses": {
          "type": "array",
          "items": {
            "type": "string"
          },
          "description": "IP addresses of the currently active machines.\n"
        },
        "cloud": {
          "type": "string"
        },
        "diskSize": {
          "type": "number"
        },
        "environment": {
          "type": "object",
          "additionalProperties": {
            "type": "string"
          }
        },
        "events": {
          "type": "array",
          "items": {
            "type": "string"
          },
          "description": "List of events for the machine orchestrator.\n"
        },
        "image": {
          "type": "string"
        },
        "logs": {
          "type": "array",
          "items": {
            "type": "string"
          },
          "description": "List with task logs; one for each machine.\n"
        },
        "machine": {
          "type": "string"
        },
        "name": {
          "type": "string"
        },
        "parallelism": {
          "type": "number"
        },
        "permissionSet": {
          "type": "string"
        },
        "region": {
          "type": "string"
        },
        "script": {
          "type": "string"
        },
        "spot": {
          "type": "number"
        },
        "sshPrivateKey": {
          "type": "string",
          "description": "Used to access the created machines.\n",
          "secret": true
        },
        "sshPublicKey": {
          "type": "string",
          "description": "Used to access the created machines.\n",
          "secret": true
        },
        "status": {
          "type": "object",
          "additionalProperties": {
            "type": "number"
          },
          "description": "Status of the machine orchestrator.\n"
        },
        "storages": {
          "type": "array",
          "items": {
            "$ref": "#/types/iterative:index%2FTaskStorage:TaskStorage"
          }
        },
        "tags": {
          "type": "object",
          "additionalProperties": {
            "type": "string"
          }
        },
        "taskId": {
          "type": "string",
          "description": "Task identifier, `tpi-{name}-{random_hash_1}-{random_hash_2}`. Either the full `{id}` or (if too long), the shorter `{random_hash_1}{random_hash_2}` is used as the name for all cloud resources.\n"
        },
        "timeout": {
          "type": "number"
        },
        "timeouts": {
          "$ref": "#/types/iterative:index%2FTaskTimeouts:TaskTimeouts"
        }
      },
      "type": "object",
      "required": [
        "addresses",
        "cloud",
        "events",
        "logs",
        "name",
        "script",
        "sshPrivateKey",
        "sshPublicKey",
        "status",
        "taskId"
      ],
      "inputProperties": {
        "cloud": {
          "type": "string"
        },
        "diskSize": {
          "type": "number"
        },
        "environment": {
          "type": "object",
          "additionalProperties": {
            "type": "string"
          }
        },
        "image": {
          "type": "string"
        },
        "machine": {
          "type": "string"
        },
        "name": {
          "type": "string"
        },
        "parallelism": {
          "type": "number"
        },
        "permissionSet": {
          "type": "string"
        },
        "region": {
          "type": "string"
        },
        "script": {
          "type": "string"
        },
        "spot": {
          "type": "number"
        },
        "storages": {
          "type": "array",
          "items": {
            "$ref": "#/types/iterative:index%2FTaskStorage:TaskStorage"
          }
        },
        "tags": {
          "type": "object",
          "additionalProperties": {
            "type": "string"
          }
        },
        "taskId": {
          "type": "string",
          "description": "Task identifier, `tpi-{name}-{random_hash_1}-{random_hash_2}`. Either the full `{id}` or (if too long), the shorter `{random_hash_1}{random_hash_2}` is used as the name for all cloud resources.\n"
        },
        "timeout": {
          "type": "number"
        },
        "timeouts": {
          "$ref": "#/types/iterative:index%2FTaskTimeouts:TaskTimeouts"
        }
      },
      "requiredInputs": [
        "cloud",
        "script"
      ],
      "stateInputs": {
        "description": "Input properties used for looking up and filtering Task resources.\n",
        "properties": {
          "addresses": {
            "type": "array",
            "items": {
              "type": "string"
            },
            "description": "IP addresses of the currently active machines.\n"
          },
          "cloud": {
            "type": "string"
          },
          "diskSize": {
            "type": "number"
          },
          "environment": {
            "type": "object",
            "additionalProperties": {
              "type": "string"
            }
          },
          "events": {
            "type": "array",
            "items": {
              "type": "string"
            },
            "description": "List of events for the machine orchestrator.\n"
          },
          "image": {
            "type": "string"
          },
          "logs": {
            "type": "array",
            "items": {
              "type": "string"
            },
            "description": "List with task logs; one for each machine.\n"
          },
          "machine": {
            "type": "string"
          },
          "name": {
            "type": "string"
          },
          "parallelism": {
            "type": "number"
          },
          "permissionSet": {
            "type": "string"
          },
          "region": {
            "type": "string"
          },
          "script": {
            "type": "string"
          },
          "spot": {
            "type": "number"
          },
          "sshPrivateKey": {
            "type": "string",
            "description": "Used to access the created machines.\n",
            "secret": true
          },
          "sshPublicKey": {
            "type": "string",
            "description": "Used to access the created machines.\n",
            "secret": true
          },
          "status": {
            "type": "object",
            "additionalProperties": {
              "type": "number"
            },
            "description": "Status of the machine orchestrator.\n"
          },
          "storages": {
            "type": "array",
            "items": {
              "$ref": "#/types/iterative:index%2FTaskStorage:TaskStorage"
            }
          },
          "tags": {
            "type": "object",
            "additionalProperties": {
              "type": "string"
            }
          },
          "taskId": {
            "type": "string",
            "description": "Task identifier, `tpi-{name}-{random_hash_1}-{random_hash_2}`. Either the full `{id}` or (if too long), the shorter `{random_hash_1}{random_hash_2}` is used as the name for all cloud resources.\n"
          },
          "timeout": {
            "type": "number"
          },
          "timeouts": {
            "$ref": "#/types/iterative:index%2FTaskTimeouts:TaskTimeouts"
          }
        },
        "type": "object"
      }
    }
  },
  "parameterization": {
    "baseProvider": {
      "name": "terraform-provider",
      "version": "0.10.0"
    },
    "parameter": "eyJyZW1vdGUiOnsidXJsIjoicmVnaXN0cnkub3BlbnRvZnUub3JnL2l0ZXJhdGl2ZS9pdGVyYXRpdmUiLCJ2ZXJzaW9uIjoiMC4xMS4yMCJ9fQ=="
  }
}
