{
  "terraformType": "cloud_function",
  "service": "functions",
  "resourceType": "Function",
  "create": "RegisterFunction",
  "read": "GetFunction",
  "update": "UpdateFunctionConfiguration",
  "delete": "DeleteFunction",
  "list": "ListFunctions",
  "importId": "{name}",
  "identifierAttrs": [
    "name"
  ],
  "createOnly": [
    "name"
  ],
  "computed": [
    "id",
    "function_arn"
  ],
  "sensitive": [],
  "readSpec": {
    "calls": [
      {
        "operation": {
          "kind": "cloudJson",
          "service": "functions",
          "operation": "GetFunction",
          "target": "CloudFunctions.GetFunction"
        },
        "requestBindings": [
          {
            "requestPath": "name",
            "source": {
              "kind": "physicalId",
              "member": "name"
            }
          }
        ]
      }
    ],
    "resultSelector": null,
    "observedFields": [
      {
        "source": {
          "kind": "response",
          "call": 0,
          "path": "name"
        },
        "modelField": "name",
        "transform": "identity"
      },
      {
        "source": {
          "kind": "response",
          "call": 0,
          "path": "packageType"
        },
        "modelField": "packageType",
        "transform": "identity"
      },
      {
        "source": {
          "kind": "response",
          "call": 0,
          "path": "handler"
        },
        "modelField": "handler",
        "transform": "identity"
      },
      {
        "source": {
          "kind": "response",
          "call": 0,
          "path": "runtime"
        },
        "modelField": "runtime",
        "transform": "identity"
      },
      {
        "source": {
          "kind": "response",
          "call": 0,
          "path": "concurrencyLimit"
        },
        "modelField": "concurrencyLimit",
        "transform": "identity"
      },
      {
        "source": {
          "kind": "response",
          "call": 0,
          "path": "code.bucket"
        },
        "modelField": "codeBucket",
        "transform": "identity"
      },
      {
        "source": {
          "kind": "response",
          "call": 0,
          "path": "code.key"
        },
        "modelField": "codeKey",
        "transform": "identity"
      },
      {
        "source": {
          "kind": "response",
          "call": 0,
          "path": "code.sha256"
        },
        "modelField": "codeSha256",
        "transform": "identity"
      },
      {
        "source": {
          "kind": "response",
          "call": 0,
          "path": "functionArn"
        },
        "modelField": "functionArn",
        "transform": "identity"
      }
    ],
    "readiness": {
      "path": "status",
      "readyValues": [
        "Active"
      ],
      "pendingValues": [
        "Pending"
      ]
    },
    "stableComputed": "preserveWhenAbsent",
    "stableComputedFields": [
      "id",
      "functionArn"
    ]
  },
  "provider": {
    "resourceKind": "function",
    "physicalId": [
      "name"
    ],
    "exposeRevision": true,
    "attributes": [
      {
        "name": "id",
        "terraformType": "string",
        "required": false,
        "optional": false,
        "computed": true,
        "sensitive": false,
        "writeOnly": false,
        "requiresReplace": false,
        "createOnly": false
      },
      {
        "name": "name",
        "terraformType": "string",
        "required": true,
        "optional": false,
        "computed": false,
        "sensitive": false,
        "writeOnly": false,
        "requiresReplace": true,
        "createOnly": true
      },
      {
        "name": "package_type",
        "terraformType": "string",
        "required": false,
        "optional": true,
        "computed": false,
        "sensitive": false,
        "writeOnly": false,
        "requiresReplace": false,
        "createOnly": false
      },
      {
        "name": "handler",
        "terraformType": "string",
        "required": false,
        "optional": true,
        "computed": false,
        "sensitive": false,
        "writeOnly": false,
        "requiresReplace": false,
        "createOnly": false
      },
      {
        "name": "runtime",
        "terraformType": "string",
        "required": false,
        "optional": true,
        "computed": false,
        "sensitive": false,
        "writeOnly": false,
        "requiresReplace": false,
        "createOnly": false
      },
      {
        "name": "concurrency_limit",
        "terraformType": "number",
        "required": false,
        "optional": true,
        "computed": false,
        "sensitive": false,
        "writeOnly": false,
        "requiresReplace": false,
        "createOnly": false
      },
      {
        "name": "code_bucket",
        "terraformType": "string",
        "required": true,
        "optional": false,
        "computed": false,
        "sensitive": false,
        "writeOnly": false,
        "requiresReplace": false,
        "createOnly": false
      },
      {
        "name": "code_key",
        "terraformType": "string",
        "required": true,
        "optional": false,
        "computed": false,
        "sensitive": false,
        "writeOnly": false,
        "requiresReplace": false,
        "createOnly": false
      },
      {
        "name": "code_sha256",
        "terraformType": "string",
        "required": true,
        "optional": false,
        "computed": false,
        "sensitive": false,
        "writeOnly": false,
        "requiresReplace": false,
        "createOnly": false
      },
      {
        "name": "function_arn",
        "terraformType": "string",
        "required": false,
        "optional": false,
        "computed": true,
        "sensitive": false,
        "writeOnly": false,
        "requiresReplace": false,
        "createOnly": false
      }
    ]
  },
  "updateStrategy": {
    "kind": "inPlace",
    "operation": "UpdateFunctionConfiguration"
  }
}
