{
  "name": "time",
  "displayName": "Time",
  "version": "0.1.1",
  "description": "A Pulumi package for creating and managing Time resources",
  "keywords": [
    "pulumi",
    "time",
    "category/utility"
  ],
  "homepage": "https://github.com/pulumiverse/pulumi-time",
  "license": "Apache-2.0",
  "attribution": "This Pulumi package is based on the [`time` Terraform Provider](https://github.com/hashicorp/terraform-provider-time).",
  "repository": "https://github.com/pulumiverse/pulumi-time",
  "logoUrl": "https://raw.githubusercontent.com/pulumiverse/pulumi-time/main/docs/clock-svgrepo-com.png",
  "pluginDownloadURL": "github://api.github.com/pulumiverse/pulumi-time",
  "publisher": "pulumiverse",
  "meta": {
    "moduleFormat": "(.*)(?:/[^/]*)"
  },
  "language": {
    "csharp": {
      "packageReferences": {
        "Pulumi": "3.*"
      },
      "compatibility": "tfbridge20",
      "rootNamespace": "Pulumiverse"
    },
    "go": {
      "importBasePath": "github.com/pulumiverse/pulumi-time/sdk/go/time",
      "generateResourceContainerTypes": true,
      "generateExtraInputTypes": true
    },
    "java": {
      "basePackage": "com.pulumiverse",
      "buildFiles": "",
      "gradleNexusPublishPluginVersion": "",
      "gradleTest": ""
    },
    "nodejs": {
      "packageName": "@pulumiverse/time",
      "packageDescription": "A Pulumi package for creating and managing Time resources",
      "readme": "> This provider is a derived work of the [Terraform Provider](https://github.com/hashicorp/terraform-provider-time)\n> distributed under [MPL 2.0](https://www.mozilla.org/en-US/MPL/2.0/). If you encounter a bug or missing feature,\n> first check the [`pulumi-time` repo](https://github.com/pulumiverse/pulumi-time/issues); however, if that doesn't turn up anything,\n> please consult the source [`terraform-provider-time` repo](https://github.com/hashicorp/terraform-provider-time/issues).",
      "dependencies": {
        "@pulumi/pulumi": "^3.0.0"
      },
      "devDependencies": {
        "@types/mime": "^2.0.0",
        "@types/node": "^10.0.0"
      },
      "compatibility": "tfbridge20",
      "disableUnionOutputTypes": true
    },
    "python": {
      "packageName": "pulumiverse_time",
      "requires": {
        "pulumi": ">=3.0.0,<4.0.0"
      },
      "readme": "> This provider is a derived work of the [Terraform Provider](https://github.com/hashicorp/terraform-provider-time)\n> distributed under [MPL 2.0](https://www.mozilla.org/en-US/MPL/2.0/). If you encounter a bug or missing feature,\n> first check the [`pulumi-time` repo](https://github.com/pulumiverse/pulumi-time/issues); however, if that doesn't turn up anything,\n> please consult the source [`terraform-provider-time` repo](https://github.com/hashicorp/terraform-provider-time/issues).",
      "compatibility": "tfbridge20",
      "pyproject": {}
    }
  },
  "config": {},
  "provider": {
    "description": "The provider type for the time 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": {
    "time:index/offset:Offset": {
      "description": "## Example Usage\n\n### Basic Usage\n\n<!--Start PulumiCodeChooser -->\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as time from \"@pulumiverse/time\";\n\nconst example = new time.Offset(\"example\", {offsetDays: 7});\nexport const oneWeekFromNow = example.rfc3339;\n```\n```python\nimport pulumi\nimport pulumiverse_time as time\n\nexample = time.Offset(\"example\", offset_days=7)\npulumi.export(\"oneWeekFromNow\", example.rfc3339)\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Time = Pulumiverse.Time;\n\nreturn await Deployment.RunAsync(() => \n{\n    var example = new Time.Offset(\"example\", new()\n    {\n        OffsetDays = 7,\n    });\n\n    return new Dictionary<string, object?>\n    {\n        [\"oneWeekFromNow\"] = example.Rfc3339,\n    };\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n\t\"github.com/pulumiverse/pulumi-time/sdk/go/time\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\texample, err := time.NewOffset(ctx, \"example\", &time.OffsetArgs{\n\t\t\tOffsetDays: pulumi.Int(7),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tctx.Export(\"oneWeekFromNow\", example.Rfc3339)\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.time.Offset;\nimport com.pulumi.time.OffsetArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        var example = new Offset(\"example\", OffsetArgs.builder()\n            .offsetDays(7)\n            .build());\n\n        ctx.export(\"oneWeekFromNow\", example.rfc3339());\n    }\n}\n```\n```yaml\nresources:\n  example:\n    type: time:Offset\n    properties:\n      offsetDays: 7\noutputs:\n  oneWeekFromNow: ${example.rfc3339}\n```\n<!--End PulumiCodeChooser -->\n\n### Multiple Offsets Usage\n\n<!--Start PulumiCodeChooser -->\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as time from \"@pulumiverse/time\";\n\nconst example = new time.Offset(\"example\", {\n    offsetYears: 1,\n    offsetMonths: 1,\n});\nexport const oneYearAndMonthFromNow = example.rfc3339;\n```\n```python\nimport pulumi\nimport pulumiverse_time as time\n\nexample = time.Offset(\"example\",\n    offset_years=1,\n    offset_months=1)\npulumi.export(\"oneYearAndMonthFromNow\", example.rfc3339)\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Time = Pulumiverse.Time;\n\nreturn await Deployment.RunAsync(() => \n{\n    var example = new Time.Offset(\"example\", new()\n    {\n        OffsetYears = 1,\n        OffsetMonths = 1,\n    });\n\n    return new Dictionary<string, object?>\n    {\n        [\"oneYearAndMonthFromNow\"] = example.Rfc3339,\n    };\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n\t\"github.com/pulumiverse/pulumi-time/sdk/go/time\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\texample, err := time.NewOffset(ctx, \"example\", &time.OffsetArgs{\n\t\t\tOffsetYears:  pulumi.Int(1),\n\t\t\tOffsetMonths: pulumi.Int(1),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tctx.Export(\"oneYearAndMonthFromNow\", example.Rfc3339)\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.time.Offset;\nimport com.pulumi.time.OffsetArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        var example = new Offset(\"example\", OffsetArgs.builder()\n            .offsetYears(1)\n            .offsetMonths(1)\n            .build());\n\n        ctx.export(\"oneYearAndMonthFromNow\", example.rfc3339());\n    }\n}\n```\n```yaml\nresources:\n  example:\n    type: time:Offset\n    properties:\n      offsetYears: 1\n      offsetMonths: 1\noutputs:\n  oneYearAndMonthFromNow: ${example.rfc3339}\n```\n<!--End PulumiCodeChooser -->\n\n### Triggers Usage\n\n<!--Start PulumiCodeChooser -->\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as aws from \"@pulumi/aws\";\nimport * as time from \"@pulumiverse/time\";\n\nconst amiUpdate = new time.Offset(\"amiUpdate\", {\n    triggers: {\n        ami_id: data.aws_ami.example.id,\n    },\n    offsetDays: 7,\n});\nconst server = new aws.ec2.Instance(\"server\", {\n    ami: amiUpdate.triggers.apply(triggers => triggers?.amiId),\n    tags: {\n        ExpirationTime: amiUpdate.rfc3339,\n    },\n});\n// ... (other aws_instance arguments) ...\n```\n```python\nimport pulumi\nimport pulumi_aws as aws\nimport pulumiverse_time as time\n\nami_update = time.Offset(\"amiUpdate\",\n    triggers={\n        \"ami_id\": data[\"aws_ami\"][\"example\"][\"id\"],\n    },\n    offset_days=7)\nserver = aws.ec2.Instance(\"server\",\n    ami=ami_update.triggers[\"amiId\"],\n    tags={\n        \"ExpirationTime\": ami_update.rfc3339,\n    })\n# ... (other aws_instance arguments) ...\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Aws = Pulumi.Aws;\nusing Time = Pulumiverse.Time;\n\nreturn await Deployment.RunAsync(() => \n{\n    var amiUpdate = new Time.Offset(\"amiUpdate\", new()\n    {\n        Triggers = \n        {\n            { \"ami_id\", data.Aws_ami.Example.Id },\n        },\n        OffsetDays = 7,\n    });\n\n    var server = new Aws.Ec2.Instance(\"server\", new()\n    {\n        Ami = amiUpdate.Triggers.Apply(triggers => triggers?.AmiId),\n        Tags = \n        {\n            { \"ExpirationTime\", amiUpdate.Rfc3339 },\n        },\n    });\n\n    // ... (other aws_instance arguments) ...\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-aws/sdk/v6/go/aws/ec2\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n\t\"github.com/pulumiverse/pulumi-time/sdk/go/time\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\tamiUpdate, err := time.NewOffset(ctx, \"amiUpdate\", &time.OffsetArgs{\n\t\t\tTriggers: pulumi.StringMap{\n\t\t\t\t\"ami_id\": pulumi.Any(data.Aws_ami.Example.Id),\n\t\t\t},\n\t\t\tOffsetDays: pulumi.Int(7),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = ec2.NewInstance(ctx, \"server\", &ec2.InstanceArgs{\n\t\t\tAmi: pulumi.String(amiUpdate.Triggers.ApplyT(func(triggers map[string]string) (*string, error) {\n\t\t\t\treturn &triggers.AmiId, nil\n\t\t\t}).(pulumi.StringPtrOutput)),\n\t\t\tTags: pulumi.StringMap{\n\t\t\t\t\"ExpirationTime\": amiUpdate.Rfc3339,\n\t\t\t},\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.time.Offset;\nimport com.pulumi.time.OffsetArgs;\nimport com.pulumi.aws.ec2.Instance;\nimport com.pulumi.aws.ec2.InstanceArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        var amiUpdate = new Offset(\"amiUpdate\", OffsetArgs.builder()\n            .triggers(Map.of(\"ami_id\", data.aws_ami().example().id()))\n            .offsetDays(7)\n            .build());\n\n        var server = new Instance(\"server\", InstanceArgs.builder()\n            .ami(amiUpdate.triggers().applyValue(triggers -> triggers.amiId()))\n            .tags(Map.of(\"ExpirationTime\", amiUpdate.rfc3339()))\n            .build());\n\n        // ... (other aws_instance arguments) ...\n    }\n}\n```\n```yaml\nresources:\n  amiUpdate:\n    type: time:Offset\n    properties:\n      triggers:\n        ami_id: ${data.aws_ami.example.id}\n      offsetDays: 7\n  server:\n    type: aws:ec2:Instance\n    properties:\n      # Read the AMI id \"through\" the time_offset resource to ensure that\n      #   # both will change together.\n      ami: ${amiUpdate.triggers.amiId}\n      tags:\n        ExpirationTime: ${amiUpdate.rfc3339}\n```\n<!--End PulumiCodeChooser -->\n\n## Import\n\nThis resource can be imported using the base UTC RFC3339 timestamp and offset years, months, days, hours, minutes, and seconds, separated by commas (`,`), e.g.\n\n```sh\n$ pulumi import time:index/offset:Offset example 2020-02-12T06:36:13Z,0,0,7,0,0,0\n```\n\nThe `triggers` argument cannot be imported.\n\n",
      "properties": {
        "baseRfc3339": {
          "type": "string",
          "description": "Base timestamp in [RFC3339](https://datatracker.ietf.org/doc/html/rfc3339#section-5.8) format (see [RFC3339 time string](https://tools.ietf.org/html/rfc3339#section-5.8) e.g., `YYYY-MM-DDTHH:MM:SSZ`). Defaults to the current time.\n"
        },
        "day": {
          "type": "integer",
          "description": "Number day of offset timestamp.\n"
        },
        "hour": {
          "type": "integer",
          "description": "Number hour of offset timestamp.\n"
        },
        "minute": {
          "type": "integer",
          "description": "Number minute of offset timestamp.\n"
        },
        "month": {
          "type": "integer",
          "description": "Number month of offset timestamp.\n"
        },
        "offsetDays": {
          "type": "integer",
          "description": "Number of days to offset the base timestamp. At least one of the 'offset_' arguments must be configured.\n"
        },
        "offsetHours": {
          "type": "integer",
          "description": "Number of hours to offset the base timestamp. At least one of the 'offset_' arguments must be configured.\n"
        },
        "offsetMinutes": {
          "type": "integer",
          "description": "Number of minutes to offset the base timestamp. At least one of the 'offset_' arguments must be configured.\n"
        },
        "offsetMonths": {
          "type": "integer",
          "description": "Number of months to offset the base timestamp. At least one of the 'offset_' arguments must be configured.\n"
        },
        "offsetSeconds": {
          "type": "integer",
          "description": "Number of seconds to offset the base timestamp. At least one of the 'offset_' arguments must be configured.\n"
        },
        "offsetYears": {
          "type": "integer",
          "description": "Number of years to offset the base timestamp. At least one of the 'offset_' arguments must be configured.\n"
        },
        "rfc3339": {
          "type": "string",
          "description": "RFC3339 format of the offset timestamp, e.g. `2020-02-12T06:36:13Z`.\n"
        },
        "second": {
          "type": "integer",
          "description": "Number second of offset timestamp.\n"
        },
        "triggers": {
          "type": "object",
          "additionalProperties": {
            "type": "string"
          },
          "description": "Arbitrary map of values that, when changed, will trigger a new base timestamp value to be saved. See the main provider documentation for more information.\n"
        },
        "unix": {
          "type": "integer",
          "description": "Number of seconds since epoch time, e.g. `1581489373`.\n"
        },
        "year": {
          "type": "integer",
          "description": "Number year of offset timestamp.\n"
        }
      },
      "type": "object",
      "required": [
        "baseRfc3339",
        "day",
        "hour",
        "minute",
        "month",
        "rfc3339",
        "second",
        "unix",
        "year"
      ],
      "inputProperties": {
        "baseRfc3339": {
          "type": "string",
          "description": "Base timestamp in [RFC3339](https://datatracker.ietf.org/doc/html/rfc3339#section-5.8) format (see [RFC3339 time string](https://tools.ietf.org/html/rfc3339#section-5.8) e.g., `YYYY-MM-DDTHH:MM:SSZ`). Defaults to the current time.\n"
        },
        "offsetDays": {
          "type": "integer",
          "description": "Number of days to offset the base timestamp. At least one of the 'offset_' arguments must be configured.\n"
        },
        "offsetHours": {
          "type": "integer",
          "description": "Number of hours to offset the base timestamp. At least one of the 'offset_' arguments must be configured.\n"
        },
        "offsetMinutes": {
          "type": "integer",
          "description": "Number of minutes to offset the base timestamp. At least one of the 'offset_' arguments must be configured.\n"
        },
        "offsetMonths": {
          "type": "integer",
          "description": "Number of months to offset the base timestamp. At least one of the 'offset_' arguments must be configured.\n"
        },
        "offsetSeconds": {
          "type": "integer",
          "description": "Number of seconds to offset the base timestamp. At least one of the 'offset_' arguments must be configured.\n"
        },
        "offsetYears": {
          "type": "integer",
          "description": "Number of years to offset the base timestamp. At least one of the 'offset_' arguments must be configured.\n"
        },
        "triggers": {
          "type": "object",
          "additionalProperties": {
            "type": "string"
          },
          "description": "Arbitrary map of values that, when changed, will trigger a new base timestamp value to be saved. See the main provider documentation for more information.\n"
        }
      },
      "stateInputs": {
        "description": "Input properties used for looking up and filtering Offset resources.\n",
        "properties": {
          "baseRfc3339": {
            "type": "string",
            "description": "Base timestamp in [RFC3339](https://datatracker.ietf.org/doc/html/rfc3339#section-5.8) format (see [RFC3339 time string](https://tools.ietf.org/html/rfc3339#section-5.8) e.g., `YYYY-MM-DDTHH:MM:SSZ`). Defaults to the current time.\n"
          },
          "day": {
            "type": "integer",
            "description": "Number day of offset timestamp.\n"
          },
          "hour": {
            "type": "integer",
            "description": "Number hour of offset timestamp.\n"
          },
          "minute": {
            "type": "integer",
            "description": "Number minute of offset timestamp.\n"
          },
          "month": {
            "type": "integer",
            "description": "Number month of offset timestamp.\n"
          },
          "offsetDays": {
            "type": "integer",
            "description": "Number of days to offset the base timestamp. At least one of the 'offset_' arguments must be configured.\n"
          },
          "offsetHours": {
            "type": "integer",
            "description": "Number of hours to offset the base timestamp. At least one of the 'offset_' arguments must be configured.\n"
          },
          "offsetMinutes": {
            "type": "integer",
            "description": "Number of minutes to offset the base timestamp. At least one of the 'offset_' arguments must be configured.\n"
          },
          "offsetMonths": {
            "type": "integer",
            "description": "Number of months to offset the base timestamp. At least one of the 'offset_' arguments must be configured.\n"
          },
          "offsetSeconds": {
            "type": "integer",
            "description": "Number of seconds to offset the base timestamp. At least one of the 'offset_' arguments must be configured.\n"
          },
          "offsetYears": {
            "type": "integer",
            "description": "Number of years to offset the base timestamp. At least one of the 'offset_' arguments must be configured.\n"
          },
          "rfc3339": {
            "type": "string",
            "description": "RFC3339 format of the offset timestamp, e.g. `2020-02-12T06:36:13Z`.\n"
          },
          "second": {
            "type": "integer",
            "description": "Number second of offset timestamp.\n"
          },
          "triggers": {
            "type": "object",
            "additionalProperties": {
              "type": "string"
            },
            "description": "Arbitrary map of values that, when changed, will trigger a new base timestamp value to be saved. See the main provider documentation for more information.\n"
          },
          "unix": {
            "type": "integer",
            "description": "Number of seconds since epoch time, e.g. `1581489373`.\n"
          },
          "year": {
            "type": "integer",
            "description": "Number year of offset timestamp.\n"
          }
        },
        "type": "object"
      }
    },
    "time:index/rotating:Rotating": {
      "description": "## Example Usage\n\n### Basic Usage\n\n<!--Start PulumiCodeChooser -->\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as time from \"@pulumiverse/time\";\n\nconst example = new time.Rotating(\"example\", {rotationDays: 30});\n```\n```python\nimport pulumi\nimport pulumiverse_time as time\n\nexample = time.Rotating(\"example\", rotation_days=30)\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Time = Pulumiverse.Time;\n\nreturn await Deployment.RunAsync(() => \n{\n    var example = new Time.Rotating(\"example\", new()\n    {\n        RotationDays = 30,\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n\t\"github.com/pulumiverse/pulumi-time/sdk/go/time\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\t_, err := time.NewRotating(ctx, \"example\", &time.RotatingArgs{\n\t\t\tRotationDays: pulumi.Int(30),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.time.Rotating;\nimport com.pulumi.time.RotatingArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        var example = new Rotating(\"example\", RotatingArgs.builder()\n            .rotationDays(30)\n            .build());\n\n    }\n}\n```\n```yaml\nresources:\n  example:\n    type: time:Rotating\n    properties:\n      rotationDays: 30\n```\n<!--End PulumiCodeChooser -->\n\n## Import\n\nThis resource can be imported using the base UTC RFC3339 value and rotation years, months, days, hours, and minutes, separated by commas (`,`), e.g. for 30 days\n\n```sh\n$ pulumi import time:index/rotating:Rotating example 2020-02-12T06:36:13Z,0,0,30,0,0\n```\n\nOtherwise, to import with the rotation RFC3339 value, the base UTC RFC3339 value and rotation UTC RFC3339 value, separated by commas (`,`), e.g.\n\n```sh\n$ pulumi import time:index/rotating:Rotating example 2020-02-12T06:36:13Z,2020-02-13T06:36:13Z\n```\n\nThe `triggers` argument cannot be imported.\n\n",
      "properties": {
        "day": {
          "type": "integer",
          "description": "Number day of timestamp.\n"
        },
        "hour": {
          "type": "integer",
          "description": "Number hour of timestamp.\n"
        },
        "minute": {
          "type": "integer",
          "description": "Number minute of timestamp.\n"
        },
        "month": {
          "type": "integer",
          "description": "Number month of timestamp.\n"
        },
        "rfc3339": {
          "type": "string",
          "description": "Base timestamp in [RFC3339](https://datatracker.ietf.org/doc/html/rfc3339#section-5.8) format (see [RFC3339 time string](https://tools.ietf.org/html/rfc3339#section-5.8) e.g., `YYYY-MM-DDTHH:MM:SSZ`). Defaults to the current time.\n"
        },
        "rotationDays": {
          "type": "integer",
          "description": "Number of days to add to the base timestamp to configure the rotation timestamp. When the current time has passed the rotation timestamp, the resource will trigger recreation. At least one of the 'rotation_' arguments must be configured.\n"
        },
        "rotationHours": {
          "type": "integer",
          "description": "Number of hours to add to the base timestamp to configure the rotation timestamp. When the current time has passed the rotation timestamp, the resource will trigger recreation. At least one of the 'rotation_' arguments must be configured.\n"
        },
        "rotationMinutes": {
          "type": "integer",
          "description": "Number of minutes to add to the base timestamp to configure the rotation timestamp. When the current time has passed the rotation timestamp, the resource will trigger recreation. At least one of the 'rotation_' arguments must be configured.\n"
        },
        "rotationMonths": {
          "type": "integer",
          "description": "Number of months to add to the base timestamp to configure the rotation timestamp. When the current time has passed the rotation timestamp, the resource will trigger recreation. At least one of the 'rotation_' arguments must be configured.\n"
        },
        "rotationRfc3339": {
          "type": "string",
          "description": "Configure the rotation timestamp with an [RFC3339](https://datatracker.ietf.org/doc/html/rfc3339#section-5.8) format of the offset timestamp. When the current time has passed the rotation timestamp, the resource will trigger recreation. At least one of the 'rotation_' arguments must be configured.\n"
        },
        "rotationYears": {
          "type": "integer",
          "description": "Number of years to add to the base timestamp to configure the rotation timestamp. When the current time has passed the rotation timestamp, the resource will trigger recreation. At least one of the 'rotation_' arguments must be configured.\n"
        },
        "second": {
          "type": "integer",
          "description": "Number second of timestamp.\n"
        },
        "triggers": {
          "type": "object",
          "additionalProperties": {
            "type": "string"
          },
          "description": "Arbitrary map of values that, when changed, will trigger a new base timestamp value to be saved. These conditions recreate the resource in addition to other rotation arguments. See the main provider documentation for more information.\n"
        },
        "unix": {
          "type": "integer",
          "description": "Number of seconds since epoch time, e.g. `1581489373`.\n"
        },
        "year": {
          "type": "integer",
          "description": "Number year of timestamp.\n"
        }
      },
      "type": "object",
      "required": [
        "day",
        "hour",
        "minute",
        "month",
        "rfc3339",
        "rotationRfc3339",
        "second",
        "unix",
        "year"
      ],
      "inputProperties": {
        "rfc3339": {
          "type": "string",
          "description": "Base timestamp in [RFC3339](https://datatracker.ietf.org/doc/html/rfc3339#section-5.8) format (see [RFC3339 time string](https://tools.ietf.org/html/rfc3339#section-5.8) e.g., `YYYY-MM-DDTHH:MM:SSZ`). Defaults to the current time.\n"
        },
        "rotationDays": {
          "type": "integer",
          "description": "Number of days to add to the base timestamp to configure the rotation timestamp. When the current time has passed the rotation timestamp, the resource will trigger recreation. At least one of the 'rotation_' arguments must be configured.\n"
        },
        "rotationHours": {
          "type": "integer",
          "description": "Number of hours to add to the base timestamp to configure the rotation timestamp. When the current time has passed the rotation timestamp, the resource will trigger recreation. At least one of the 'rotation_' arguments must be configured.\n"
        },
        "rotationMinutes": {
          "type": "integer",
          "description": "Number of minutes to add to the base timestamp to configure the rotation timestamp. When the current time has passed the rotation timestamp, the resource will trigger recreation. At least one of the 'rotation_' arguments must be configured.\n"
        },
        "rotationMonths": {
          "type": "integer",
          "description": "Number of months to add to the base timestamp to configure the rotation timestamp. When the current time has passed the rotation timestamp, the resource will trigger recreation. At least one of the 'rotation_' arguments must be configured.\n"
        },
        "rotationRfc3339": {
          "type": "string",
          "description": "Configure the rotation timestamp with an [RFC3339](https://datatracker.ietf.org/doc/html/rfc3339#section-5.8) format of the offset timestamp. When the current time has passed the rotation timestamp, the resource will trigger recreation. At least one of the 'rotation_' arguments must be configured.\n"
        },
        "rotationYears": {
          "type": "integer",
          "description": "Number of years to add to the base timestamp to configure the rotation timestamp. When the current time has passed the rotation timestamp, the resource will trigger recreation. At least one of the 'rotation_' arguments must be configured.\n"
        },
        "triggers": {
          "type": "object",
          "additionalProperties": {
            "type": "string"
          },
          "description": "Arbitrary map of values that, when changed, will trigger a new base timestamp value to be saved. These conditions recreate the resource in addition to other rotation arguments. See the main provider documentation for more information.\n"
        }
      },
      "stateInputs": {
        "description": "Input properties used for looking up and filtering Rotating resources.\n",
        "properties": {
          "day": {
            "type": "integer",
            "description": "Number day of timestamp.\n"
          },
          "hour": {
            "type": "integer",
            "description": "Number hour of timestamp.\n"
          },
          "minute": {
            "type": "integer",
            "description": "Number minute of timestamp.\n"
          },
          "month": {
            "type": "integer",
            "description": "Number month of timestamp.\n"
          },
          "rfc3339": {
            "type": "string",
            "description": "Base timestamp in [RFC3339](https://datatracker.ietf.org/doc/html/rfc3339#section-5.8) format (see [RFC3339 time string](https://tools.ietf.org/html/rfc3339#section-5.8) e.g., `YYYY-MM-DDTHH:MM:SSZ`). Defaults to the current time.\n"
          },
          "rotationDays": {
            "type": "integer",
            "description": "Number of days to add to the base timestamp to configure the rotation timestamp. When the current time has passed the rotation timestamp, the resource will trigger recreation. At least one of the 'rotation_' arguments must be configured.\n"
          },
          "rotationHours": {
            "type": "integer",
            "description": "Number of hours to add to the base timestamp to configure the rotation timestamp. When the current time has passed the rotation timestamp, the resource will trigger recreation. At least one of the 'rotation_' arguments must be configured.\n"
          },
          "rotationMinutes": {
            "type": "integer",
            "description": "Number of minutes to add to the base timestamp to configure the rotation timestamp. When the current time has passed the rotation timestamp, the resource will trigger recreation. At least one of the 'rotation_' arguments must be configured.\n"
          },
          "rotationMonths": {
            "type": "integer",
            "description": "Number of months to add to the base timestamp to configure the rotation timestamp. When the current time has passed the rotation timestamp, the resource will trigger recreation. At least one of the 'rotation_' arguments must be configured.\n"
          },
          "rotationRfc3339": {
            "type": "string",
            "description": "Configure the rotation timestamp with an [RFC3339](https://datatracker.ietf.org/doc/html/rfc3339#section-5.8) format of the offset timestamp. When the current time has passed the rotation timestamp, the resource will trigger recreation. At least one of the 'rotation_' arguments must be configured.\n"
          },
          "rotationYears": {
            "type": "integer",
            "description": "Number of years to add to the base timestamp to configure the rotation timestamp. When the current time has passed the rotation timestamp, the resource will trigger recreation. At least one of the 'rotation_' arguments must be configured.\n"
          },
          "second": {
            "type": "integer",
            "description": "Number second of timestamp.\n"
          },
          "triggers": {
            "type": "object",
            "additionalProperties": {
              "type": "string"
            },
            "description": "Arbitrary map of values that, when changed, will trigger a new base timestamp value to be saved. These conditions recreate the resource in addition to other rotation arguments. See the main provider documentation for more information.\n"
          },
          "unix": {
            "type": "integer",
            "description": "Number of seconds since epoch time, e.g. `1581489373`.\n"
          },
          "year": {
            "type": "integer",
            "description": "Number year of timestamp.\n"
          }
        },
        "type": "object"
      }
    },
    "time:index/sleep:Sleep": {
      "description": "## Example Usage\n\n### Delay Create Usage\n\n<!--Start PulumiCodeChooser -->\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as _null from \"@pulumi/null\";\nimport * as time from \"@pulumiverse/time\";\n\n// This resource will destroy (potentially immediately) after null_resource.next\nconst previous = new _null.Resource(\"previous\", {});\nconst wait30Seconds = new time.Sleep(\"wait30Seconds\", {createDuration: \"30s\"}, {\n    dependsOn: [previous],\n});\n// This resource will create (at least) 30 seconds after null_resource.previous\nconst next = new _null.Resource(\"next\", {}, {\n    dependsOn: [wait30Seconds],\n});\n```\n```python\nimport pulumi\nimport pulumi_null as null\nimport pulumiverse_time as time\n\n# This resource will destroy (potentially immediately) after null_resource.next\nprevious = null.Resource(\"previous\")\nwait30_seconds = time.Sleep(\"wait30Seconds\", create_duration=\"30s\",\nopts = pulumi.ResourceOptions(depends_on=[previous]))\n# This resource will create (at least) 30 seconds after null_resource.previous\nnext = null.Resource(\"next\", opts = pulumi.ResourceOptions(depends_on=[wait30_seconds]))\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Null = Pulumi.Null;\nusing Time = Pulumiverse.Time;\n\nreturn await Deployment.RunAsync(() => \n{\n    // This resource will destroy (potentially immediately) after null_resource.next\n    var previous = new Null.Resource(\"previous\");\n\n    var wait30Seconds = new Time.Sleep(\"wait30Seconds\", new()\n    {\n        CreateDuration = \"30s\",\n    }, new CustomResourceOptions\n    {\n        DependsOn =\n        {\n            previous,\n        },\n    });\n\n    // This resource will create (at least) 30 seconds after null_resource.previous\n    var next = new Null.Resource(\"next\", new()\n    {\n    }, new CustomResourceOptions\n    {\n        DependsOn =\n        {\n            wait30Seconds,\n        },\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-null/sdk/go/null\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n\t\"github.com/pulumiverse/pulumi-time/sdk/go/time\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\t// This resource will destroy (potentially immediately) after null_resource.next\n\t\tprevious, err := null.NewResource(ctx, \"previous\", nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\twait30Seconds, err := time.NewSleep(ctx, \"wait30Seconds\", &time.SleepArgs{\n\t\t\tCreateDuration: pulumi.String(\"30s\"),\n\t\t}, pulumi.DependsOn([]pulumi.Resource{\n\t\t\tprevious,\n\t\t}))\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t// This resource will create (at least) 30 seconds after null_resource.previous\n\t\t_, err = null.NewResource(ctx, \"next\", nil, pulumi.DependsOn([]pulumi.Resource{\n\t\t\twait30Seconds,\n\t\t}))\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.null.Resource;\nimport com.pulumi.time.Sleep;\nimport com.pulumi.time.SleepArgs;\nimport com.pulumi.null.ResourceArgs;\nimport com.pulumi.resources.CustomResourceOptions;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        // This resource will destroy (potentially immediately) after null_resource.next\n        var previous = new Resource(\"previous\");\n\n        var wait30Seconds = new Sleep(\"wait30Seconds\", SleepArgs.builder()\n            .createDuration(\"30s\")\n            .build(), CustomResourceOptions.builder()\n                .dependsOn(previous)\n                .build());\n\n        // This resource will create (at least) 30 seconds after null_resource.previous\n        var next = new Resource(\"next\", ResourceArgs.Empty, CustomResourceOptions.builder()\n            .dependsOn(wait30Seconds)\n            .build());\n\n    }\n}\n```\n```yaml\nresources:\n  # This resource will destroy (potentially immediately) after null_resource.next\n  previous:\n    type: null:Resource\n  wait30Seconds:\n    type: time:Sleep\n    properties:\n      createDuration: 30s\n    options:\n      dependson:\n        - ${previous}\n  # This resource will create (at least) 30 seconds after null_resource.previous\n  next:\n    type: null:Resource\n    options:\n      dependson:\n        - ${wait30Seconds}\n```\n<!--End PulumiCodeChooser -->\n\n### Delay Destroy Usage\n\n<!--Start PulumiCodeChooser -->\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as _null from \"@pulumi/null\";\nimport * as time from \"@pulumiverse/time\";\n\n// This resource will destroy (at least) 30 seconds after null_resource.next\nconst previous = new _null.Resource(\"previous\", {});\nconst wait30Seconds = new time.Sleep(\"wait30Seconds\", {destroyDuration: \"30s\"}, {\n    dependsOn: [previous],\n});\n// This resource will create (potentially immediately) after null_resource.previous\nconst next = new _null.Resource(\"next\", {}, {\n    dependsOn: [wait30Seconds],\n});\n```\n```python\nimport pulumi\nimport pulumi_null as null\nimport pulumiverse_time as time\n\n# This resource will destroy (at least) 30 seconds after null_resource.next\nprevious = null.Resource(\"previous\")\nwait30_seconds = time.Sleep(\"wait30Seconds\", destroy_duration=\"30s\",\nopts = pulumi.ResourceOptions(depends_on=[previous]))\n# This resource will create (potentially immediately) after null_resource.previous\nnext = null.Resource(\"next\", opts = pulumi.ResourceOptions(depends_on=[wait30_seconds]))\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Null = Pulumi.Null;\nusing Time = Pulumiverse.Time;\n\nreturn await Deployment.RunAsync(() => \n{\n    // This resource will destroy (at least) 30 seconds after null_resource.next\n    var previous = new Null.Resource(\"previous\");\n\n    var wait30Seconds = new Time.Sleep(\"wait30Seconds\", new()\n    {\n        DestroyDuration = \"30s\",\n    }, new CustomResourceOptions\n    {\n        DependsOn =\n        {\n            previous,\n        },\n    });\n\n    // This resource will create (potentially immediately) after null_resource.previous\n    var next = new Null.Resource(\"next\", new()\n    {\n    }, new CustomResourceOptions\n    {\n        DependsOn =\n        {\n            wait30Seconds,\n        },\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-null/sdk/go/null\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n\t\"github.com/pulumiverse/pulumi-time/sdk/go/time\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\t// This resource will destroy (at least) 30 seconds after null_resource.next\n\t\tprevious, err := null.NewResource(ctx, \"previous\", nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\twait30Seconds, err := time.NewSleep(ctx, \"wait30Seconds\", &time.SleepArgs{\n\t\t\tDestroyDuration: pulumi.String(\"30s\"),\n\t\t}, pulumi.DependsOn([]pulumi.Resource{\n\t\t\tprevious,\n\t\t}))\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t// This resource will create (potentially immediately) after null_resource.previous\n\t\t_, err = null.NewResource(ctx, \"next\", nil, pulumi.DependsOn([]pulumi.Resource{\n\t\t\twait30Seconds,\n\t\t}))\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.null.Resource;\nimport com.pulumi.time.Sleep;\nimport com.pulumi.time.SleepArgs;\nimport com.pulumi.null.ResourceArgs;\nimport com.pulumi.resources.CustomResourceOptions;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        // This resource will destroy (at least) 30 seconds after null_resource.next\n        var previous = new Resource(\"previous\");\n\n        var wait30Seconds = new Sleep(\"wait30Seconds\", SleepArgs.builder()\n            .destroyDuration(\"30s\")\n            .build(), CustomResourceOptions.builder()\n                .dependsOn(previous)\n                .build());\n\n        // This resource will create (potentially immediately) after null_resource.previous\n        var next = new Resource(\"next\", ResourceArgs.Empty, CustomResourceOptions.builder()\n            .dependsOn(wait30Seconds)\n            .build());\n\n    }\n}\n```\n```yaml\nresources:\n  # This resource will destroy (at least) 30 seconds after null_resource.next\n  previous:\n    type: null:Resource\n  wait30Seconds:\n    type: time:Sleep\n    properties:\n      destroyDuration: 30s\n    options:\n      dependson:\n        - ${previous}\n  # This resource will create (potentially immediately) after null_resource.previous\n  next:\n    type: null:Resource\n    options:\n      dependson:\n        - ${wait30Seconds}\n```\n<!--End PulumiCodeChooser -->\n\n### Triggers Usage\n\n<!--Start PulumiCodeChooser -->\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as aws from \"@pulumi/aws\";\nimport * as time from \"@pulumiverse/time\";\n\nconst exampleResourceAssociation = new aws.ram.ResourceAssociation(\"exampleResourceAssociation\", {\n    resourceArn: aws_subnet.example.arn,\n    resourceShareArn: aws_ram_resource_share.example.arn,\n});\n// AWS resources shared via Resource Access Manager can take a few seconds to\n// propagate across AWS accounts after RAM returns a successful association.\nconst ramResourcePropagation = new time.Sleep(\"ramResourcePropagation\", {\n    createDuration: \"60s\",\n    triggers: {\n        subnet_arn: exampleResourceAssociation.resourceArn,\n        subnet_id: aws_subnet.example.id,\n    },\n});\nconst exampleSubnetGroup = new aws.rds.SubnetGroup(\"exampleSubnetGroup\", {subnetIds: [ramResourcePropagation.triggers.apply(triggers => triggers?.subnet_id)]});\n```\n```python\nimport pulumi\nimport pulumi_aws as aws\nimport pulumiverse_time as time\n\nexample_resource_association = aws.ram.ResourceAssociation(\"exampleResourceAssociation\",\n    resource_arn=aws_subnet[\"example\"][\"arn\"],\n    resource_share_arn=aws_ram_resource_share[\"example\"][\"arn\"])\n# AWS resources shared via Resource Access Manager can take a few seconds to\n# propagate across AWS accounts after RAM returns a successful association.\nram_resource_propagation = time.Sleep(\"ramResourcePropagation\",\n    create_duration=\"60s\",\n    triggers={\n        \"subnet_arn\": example_resource_association.resource_arn,\n        \"subnet_id\": aws_subnet[\"example\"][\"id\"],\n    })\nexample_subnet_group = aws.rds.SubnetGroup(\"exampleSubnetGroup\", subnet_ids=[ram_resource_propagation.triggers[\"subnet_id\"]])\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Aws = Pulumi.Aws;\nusing Time = Pulumiverse.Time;\n\nreturn await Deployment.RunAsync(() => \n{\n    var exampleResourceAssociation = new Aws.Ram.ResourceAssociation(\"exampleResourceAssociation\", new()\n    {\n        ResourceArn = aws_subnet.Example.Arn,\n        ResourceShareArn = aws_ram_resource_share.Example.Arn,\n    });\n\n    // AWS resources shared via Resource Access Manager can take a few seconds to\n    // propagate across AWS accounts after RAM returns a successful association.\n    var ramResourcePropagation = new Time.Sleep(\"ramResourcePropagation\", new()\n    {\n        CreateDuration = \"60s\",\n        Triggers = \n        {\n            { \"subnet_arn\", exampleResourceAssociation.ResourceArn },\n            { \"subnet_id\", aws_subnet.Example.Id },\n        },\n    });\n\n    var exampleSubnetGroup = new Aws.Rds.SubnetGroup(\"exampleSubnetGroup\", new()\n    {\n        SubnetIds = new[]\n        {\n            ramResourcePropagation.Triggers.Apply(triggers => triggers?.Subnet_id),\n        },\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-aws/sdk/v6/go/aws/ram\"\n\t\"github.com/pulumi/pulumi-aws/sdk/v6/go/aws/rds\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n\t\"github.com/pulumiverse/pulumi-time/sdk/go/time\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\texampleResourceAssociation, err := ram.NewResourceAssociation(ctx, \"exampleResourceAssociation\", &ram.ResourceAssociationArgs{\n\t\t\tResourceArn:      pulumi.Any(aws_subnet.Example.Arn),\n\t\t\tResourceShareArn: pulumi.Any(aws_ram_resource_share.Example.Arn),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t// AWS resources shared via Resource Access Manager can take a few seconds to\n\t\t// propagate across AWS accounts after RAM returns a successful association.\n\t\tramResourcePropagation, err := time.NewSleep(ctx, \"ramResourcePropagation\", &time.SleepArgs{\n\t\t\tCreateDuration: pulumi.String(\"60s\"),\n\t\t\tTriggers: pulumi.StringMap{\n\t\t\t\t\"subnet_arn\": exampleResourceAssociation.ResourceArn,\n\t\t\t\t\"subnet_id\":  pulumi.Any(aws_subnet.Example.Id),\n\t\t\t},\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = rds.NewSubnetGroup(ctx, \"exampleSubnetGroup\", &rds.SubnetGroupArgs{\n\t\t\tSubnetIds: pulumi.StringArray{\n\t\t\t\tpulumi.String(ramResourcePropagation.Triggers.ApplyT(func(triggers map[string]string) (*string, error) {\n\t\t\t\t\treturn &triggers.Subnet_id, nil\n\t\t\t\t}).(pulumi.StringPtrOutput)),\n\t\t\t},\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.aws.ram.ResourceAssociation;\nimport com.pulumi.aws.ram.ResourceAssociationArgs;\nimport com.pulumi.time.Sleep;\nimport com.pulumi.time.SleepArgs;\nimport com.pulumi.aws.rds.SubnetGroup;\nimport com.pulumi.aws.rds.SubnetGroupArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        var exampleResourceAssociation = new ResourceAssociation(\"exampleResourceAssociation\", ResourceAssociationArgs.builder()\n            .resourceArn(aws_subnet.example().arn())\n            .resourceShareArn(aws_ram_resource_share.example().arn())\n            .build());\n\n        // AWS resources shared via Resource Access Manager can take a few seconds to\n        // propagate across AWS accounts after RAM returns a successful association.\n        var ramResourcePropagation = new Sleep(\"ramResourcePropagation\", SleepArgs.builder()\n            .createDuration(\"60s\")\n            .triggers(Map.ofEntries(\n                Map.entry(\"subnet_arn\", exampleResourceAssociation.resourceArn()),\n                Map.entry(\"subnet_id\", aws_subnet.example().id())\n            ))\n            .build());\n\n        var exampleSubnetGroup = new SubnetGroup(\"exampleSubnetGroup\", SubnetGroupArgs.builder()\n            .subnetIds(ramResourcePropagation.triggers().applyValue(triggers -> triggers.subnet_id()))\n            .build());\n\n    }\n}\n```\n```yaml\nresources:\n  exampleResourceAssociation:\n    type: aws:ram:ResourceAssociation\n    properties:\n      resourceArn: ${aws_subnet.example.arn}\n      resourceShareArn: ${aws_ram_resource_share.example.arn}\n  # AWS resources shared via Resource Access Manager can take a few seconds to\n  # propagate across AWS accounts after RAM returns a successful association.\n  ramResourcePropagation:\n    type: time:Sleep\n    properties:\n      createDuration: 60s\n      triggers:\n        subnet_arn: ${exampleResourceAssociation.resourceArn}\n        subnet_id: ${aws_subnet.example.id}\n  exampleSubnetGroup:\n    type: aws:rds:SubnetGroup\n    properties:\n      # Read the Subnet identifier \"through\" the time_sleep resource to ensure a\n      #   # proper dependency and that both will change together.\n      subnetIds:\n        - ${ramResourcePropagation.triggers.subnet_id}\n```\n<!--End PulumiCodeChooser -->\n\n## Import\n\nThis resource can be imported with the `create_duration` and `destroy_duration`, separated by a comma (`,`).\n\ne.g. For 30 seconds create duration with no destroy duration:\n\n```sh\n$ pulumi import time:index/sleep:Sleep example 30s,\n```\n\ne.g. For 30 seconds destroy duration with no create duration:\n\n```sh\n$ pulumi import time:index/sleep:Sleep example ,30s\n```\n\nThe `triggers` argument cannot be imported.\n\n",
      "properties": {
        "createDuration": {
          "type": "string",
          "description": "[Time duration](https://golang.org/pkg/time/#ParseDuration) to delay resource creation. For example, `30s` for 30 seconds or `5m` for 5 minutes. Updating this value by itself will not trigger a delay.\n"
        },
        "destroyDuration": {
          "type": "string"
        },
        "triggers": {
          "type": "object",
          "additionalProperties": {
            "type": "string"
          },
          "description": "(Optional) Arbitrary map of values that, when changed, will run any creation or destroy delays again. See the main provider documentation for more information.\n"
        }
      },
      "type": "object",
      "inputProperties": {
        "createDuration": {
          "type": "string",
          "description": "[Time duration](https://golang.org/pkg/time/#ParseDuration) to delay resource creation. For example, `30s` for 30 seconds or `5m` for 5 minutes. Updating this value by itself will not trigger a delay.\n"
        },
        "destroyDuration": {
          "type": "string"
        },
        "triggers": {
          "type": "object",
          "additionalProperties": {
            "type": "string"
          },
          "description": "(Optional) Arbitrary map of values that, when changed, will run any creation or destroy delays again. See the main provider documentation for more information.\n"
        }
      },
      "stateInputs": {
        "description": "Input properties used for looking up and filtering Sleep resources.\n",
        "properties": {
          "createDuration": {
            "type": "string",
            "description": "[Time duration](https://golang.org/pkg/time/#ParseDuration) to delay resource creation. For example, `30s` for 30 seconds or `5m` for 5 minutes. Updating this value by itself will not trigger a delay.\n"
          },
          "destroyDuration": {
            "type": "string"
          },
          "triggers": {
            "type": "object",
            "additionalProperties": {
              "type": "string"
            },
            "description": "(Optional) Arbitrary map of values that, when changed, will run any creation or destroy delays again. See the main provider documentation for more information.\n"
          }
        },
        "type": "object"
      }
    },
    "time:index/static:Static": {
      "description": "## Example Usage\n\n### Basic Usage\n\n<!--Start PulumiCodeChooser -->\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as time from \"@pulumiverse/time\";\n\nconst example = new time.Static(\"example\", {});\nexport const currentTime = example.rfc3339;\n```\n```python\nimport pulumi\nimport pulumiverse_time as time\n\nexample = time.Static(\"example\")\npulumi.export(\"currentTime\", example.rfc3339)\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Time = Pulumiverse.Time;\n\nreturn await Deployment.RunAsync(() => \n{\n    var example = new Time.Static(\"example\");\n\n    return new Dictionary<string, object?>\n    {\n        [\"currentTime\"] = example.Rfc3339,\n    };\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n\t\"github.com/pulumiverse/pulumi-time/sdk/go/time\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\texample, err := time.NewStatic(ctx, \"example\", nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tctx.Export(\"currentTime\", example.Rfc3339)\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.time.Static;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        var example = new Static(\"example\");\n\n        ctx.export(\"currentTime\", example.rfc3339());\n    }\n}\n```\n```yaml\nresources:\n  example:\n    type: time:Static\noutputs:\n  currentTime: ${example.rfc3339}\n```\n<!--End PulumiCodeChooser -->\n\n### Triggers Usage\n\n<!--Start PulumiCodeChooser -->\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as aws from \"@pulumi/aws\";\nimport * as time from \"@pulumiverse/time\";\n\nconst amiUpdate = new time.Static(\"amiUpdate\", {triggers: {\n    ami_id: data.aws_ami.example.id,\n}});\nconst server = new aws.ec2.Instance(\"server\", {\n    ami: amiUpdate.triggers.apply(triggers => triggers?.amiId),\n    tags: {\n        AmiUpdateTime: amiUpdate.rfc3339,\n    },\n});\n// ... (other aws_instance arguments) ...\n```\n```python\nimport pulumi\nimport pulumi_aws as aws\nimport pulumiverse_time as time\n\nami_update = time.Static(\"amiUpdate\", triggers={\n    \"ami_id\": data[\"aws_ami\"][\"example\"][\"id\"],\n})\nserver = aws.ec2.Instance(\"server\",\n    ami=ami_update.triggers[\"amiId\"],\n    tags={\n        \"AmiUpdateTime\": ami_update.rfc3339,\n    })\n# ... (other aws_instance arguments) ...\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Aws = Pulumi.Aws;\nusing Time = Pulumiverse.Time;\n\nreturn await Deployment.RunAsync(() => \n{\n    var amiUpdate = new Time.Static(\"amiUpdate\", new()\n    {\n        Triggers = \n        {\n            { \"ami_id\", data.Aws_ami.Example.Id },\n        },\n    });\n\n    var server = new Aws.Ec2.Instance(\"server\", new()\n    {\n        Ami = amiUpdate.Triggers.Apply(triggers => triggers?.AmiId),\n        Tags = \n        {\n            { \"AmiUpdateTime\", amiUpdate.Rfc3339 },\n        },\n    });\n\n    // ... (other aws_instance arguments) ...\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-aws/sdk/v6/go/aws/ec2\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n\t\"github.com/pulumiverse/pulumi-time/sdk/go/time\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\tamiUpdate, err := time.NewStatic(ctx, \"amiUpdate\", &time.StaticArgs{\n\t\t\tTriggers: pulumi.StringMap{\n\t\t\t\t\"ami_id\": pulumi.Any(data.Aws_ami.Example.Id),\n\t\t\t},\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = ec2.NewInstance(ctx, \"server\", &ec2.InstanceArgs{\n\t\t\tAmi: pulumi.String(amiUpdate.Triggers.ApplyT(func(triggers map[string]string) (*string, error) {\n\t\t\t\treturn &triggers.AmiId, nil\n\t\t\t}).(pulumi.StringPtrOutput)),\n\t\t\tTags: pulumi.StringMap{\n\t\t\t\t\"AmiUpdateTime\": amiUpdate.Rfc3339,\n\t\t\t},\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.time.Static;\nimport com.pulumi.time.StaticArgs;\nimport com.pulumi.aws.ec2.Instance;\nimport com.pulumi.aws.ec2.InstanceArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        var amiUpdate = new Static(\"amiUpdate\", StaticArgs.builder()\n            .triggers(Map.of(\"ami_id\", data.aws_ami().example().id()))\n            .build());\n\n        var server = new Instance(\"server\", InstanceArgs.builder()\n            .ami(amiUpdate.triggers().applyValue(triggers -> triggers.amiId()))\n            .tags(Map.of(\"AmiUpdateTime\", amiUpdate.rfc3339()))\n            .build());\n\n        // ... (other aws_instance arguments) ...\n    }\n}\n```\n```yaml\nresources:\n  amiUpdate:\n    type: time:Static\n    properties:\n      triggers:\n        ami_id: ${data.aws_ami.example.id}\n  server:\n    type: aws:ec2:Instance\n    properties:\n      # Read the AMI id \"through\" the time_static resource to ensure that\n      #   # both will change together.\n      ami: ${amiUpdate.triggers.amiId}\n      tags:\n        AmiUpdateTime: ${amiUpdate.rfc3339}\n```\n<!--End PulumiCodeChooser -->\n\n## Import\n\nThis resource can be imported using the UTC RFC3339 value, e.g.\n\n```sh\n$ pulumi import time:index/static:Static example 2020-02-12T06:36:13Z\n```\n\nThe `triggers` argument cannot be imported.\n\n",
      "properties": {
        "day": {
          "type": "integer",
          "description": "Number day of timestamp.\n"
        },
        "hour": {
          "type": "integer",
          "description": "Number hour of timestamp.\n"
        },
        "minute": {
          "type": "integer",
          "description": "Number minute of timestamp.\n"
        },
        "month": {
          "type": "integer",
          "description": "Number month of timestamp.\n"
        },
        "rfc3339": {
          "type": "string",
          "description": "Base timestamp in [RFC3339](https://datatracker.ietf.org/doc/html/rfc3339#section-5.8) format (see [RFC3339 time string](https://tools.ietf.org/html/rfc3339#section-5.8) e.g., `YYYY-MM-DDTHH:MM:SSZ`). Defaults to the current time.\n"
        },
        "second": {
          "type": "integer",
          "description": "Number second of timestamp.\n"
        },
        "triggers": {
          "type": "object",
          "additionalProperties": {
            "type": "string"
          },
          "description": "Arbitrary map of values that, when changed, will trigger a new base timestamp value to be saved. See the main provider documentation for more information.\n"
        },
        "unix": {
          "type": "integer",
          "description": "Number of seconds since epoch time, e.g. `1581489373`.\n"
        },
        "year": {
          "type": "integer",
          "description": "Number year of timestamp.\n"
        }
      },
      "type": "object",
      "required": [
        "day",
        "hour",
        "minute",
        "month",
        "rfc3339",
        "second",
        "unix",
        "year"
      ],
      "inputProperties": {
        "rfc3339": {
          "type": "string",
          "description": "Base timestamp in [RFC3339](https://datatracker.ietf.org/doc/html/rfc3339#section-5.8) format (see [RFC3339 time string](https://tools.ietf.org/html/rfc3339#section-5.8) e.g., `YYYY-MM-DDTHH:MM:SSZ`). Defaults to the current time.\n"
        },
        "triggers": {
          "type": "object",
          "additionalProperties": {
            "type": "string"
          },
          "description": "Arbitrary map of values that, when changed, will trigger a new base timestamp value to be saved. See the main provider documentation for more information.\n"
        }
      },
      "stateInputs": {
        "description": "Input properties used for looking up and filtering Static resources.\n",
        "properties": {
          "day": {
            "type": "integer",
            "description": "Number day of timestamp.\n"
          },
          "hour": {
            "type": "integer",
            "description": "Number hour of timestamp.\n"
          },
          "minute": {
            "type": "integer",
            "description": "Number minute of timestamp.\n"
          },
          "month": {
            "type": "integer",
            "description": "Number month of timestamp.\n"
          },
          "rfc3339": {
            "type": "string",
            "description": "Base timestamp in [RFC3339](https://datatracker.ietf.org/doc/html/rfc3339#section-5.8) format (see [RFC3339 time string](https://tools.ietf.org/html/rfc3339#section-5.8) e.g., `YYYY-MM-DDTHH:MM:SSZ`). Defaults to the current time.\n"
          },
          "second": {
            "type": "integer",
            "description": "Number second of timestamp.\n"
          },
          "triggers": {
            "type": "object",
            "additionalProperties": {
              "type": "string"
            },
            "description": "Arbitrary map of values that, when changed, will trigger a new base timestamp value to be saved. See the main provider documentation for more information.\n"
          },
          "unix": {
            "type": "integer",
            "description": "Number of seconds since epoch time, e.g. `1581489373`.\n"
          },
          "year": {
            "type": "integer",
            "description": "Number year of timestamp.\n"
          }
        },
        "type": "object"
      }
    }
  }
}
