{"id":21719,"library":"pulumi-cloudflare","title":"Pulumi Cloudflare Provider","description":"A Pulumi package for managing Cloudflare resources. Currently at v6.14.0, requires Python >=3.9. Release cadence is irregular, roughly monthly.","status":"active","version":"6.14.0","language":"python","source_language":"en","source_url":"https://github.com/pulumi/pulumi-cloudflare","tags":["pulumi","cloudflare","infrastructure","dns","cdn","terraform-bridge"],"install":[{"cmd":"pip install pulumi-cloudflare","lang":"bash","label":"Install pulumi-cloudflare"}],"dependencies":[{"reason":"Required to run Pulumi programs","package":"pulumi","optional":false},{"reason":"Official Cloudflare Python SDK for non-Pulumi operations","package":"cloudflare","optional":true}],"imports":[{"note":"cloudflare is the official SDK, not Pulumi's package","wrong":"import cloudflare","symbol":"cloudflare","correct":"import pulumi_cloudflare as cloudflare"},{"note":"Pulumi resources are in the pulumi_cloudflare module","wrong":"from cloudflare import Record","symbol":"Record","correct":"from pulumi_cloudflare import Record"},{"note":"Zone is a Pulumi resource, not the Cloudflare SDK","wrong":"from cloudflare import Zone","symbol":"Zone","correct":"from pulumi_cloudflare import Zone"}],"quickstart":{"code":"import pulumi\nimport pulumi_cloudflare as cloudflare\n\nzone = cloudflare.Zone(\n    \"example-zone\",\n    zone=\"example.com\",\n    plan=\"free\",\n    account_id=os.environ.get('CLOUDFLARE_ACCOUNT_ID', '')\n)\n\nrecord = cloudflare.Record(\n    \"example-record\",\n    zone_id=zone.id,\n    name=\"www\",\n    type=\"A\",\n    value=\"1.2.3.4\",\n    ttl=120,\n)\n\npulumi.export(\"zone_name\", zone.zone)","lang":"python","description":"Create a Cloudflare zone and an A record."},"warnings":[{"fix":"Review the changelog and adjust your Pulumi code accordingly.","message":"v6.11.0 introduced 36 breaking changes including required fields and missing outputs. Upgrade with caution.","severity":"breaking","affected_versions":">=6.11.0"},{"fix":"Check your usage of affected resources like AddressMap, EmailRoutingDns, TeamsRule, ZeroTrustDexTest.","message":"v6.10.0 introduced 92 breaking changes including property removals and input requirement changes.","severity":"breaking","affected_versions":">=6.10.0"},{"fix":"Use pulumi_cloudflare for infrastructure, and cloudflare for API access only.","message":"Do not install the official 'cloudflare' SDK and try to use its classes in Pulumi resources. They are separate packages.","severity":"gotcha","affected_versions":"all"},{"fix":"Check resource documentation for any removed properties.","message":"Some resources like 'cloudflare:index/apiShield:ApiShield' have had outputs removed in recent versions.","severity":"deprecated","affected_versions":">=6.11.0"}],"env_vars":null,"last_verified":"2026-04-27T00:00:00.000Z","next_check":"2026-07-26T00:00:00.000Z","problems":[{"fix":"Use 'from pulumi_cloudflare import Record' instead.","cause":"Mistaking the official Cloudflare SDK for the Pulumi provider.","error":"ImportError: cannot import name 'Record' from 'cloudflare'"},{"fix":"Ensure you use pulumi.Output and apply() correctly, e.g., record.zone_id.apply(lambda zid: ...)","cause":"Trying to access a property that doesn't exist on the resource yet (e.g., before applying).","error":"KeyError: 'zone_id'"},{"fix":"Use pulumi.import or change the resource name and zone attribute.","cause":"Trying to create a zone with a name that already exists in your Cloudflare account.","error":"pulumi.errors.ResourceConflictError: resource 'example-zone' already exists"}],"ecosystem":"pypi","meta_description":null,"install_score":null,"install_tag":null,"quickstart_score":null,"quickstart_tag":null}