- How to Install doctl
- cancel-event
- cancel-job-invocation
- console
- create
- create-deployment
- delete
- get
- get-deployment
- get-event
- get-job-invocation
- list
- list-alerts
- list-buildpacks
- list-deployments
- list-events
- list-instances
- list-job-invocations
- list-regions
- logs
- propose
- restart
- update
- update-alert-destinations
- upgrade-buildpack
- doctl version
- Manage Load Balancers with doctl
- 1-Click Applications
- Account
- Actions
- Add-Ons
- Apps
- Billing
- Block Storage
- Block Storage Actions
- BYOIP Prefixes
- CDN Endpoints
- Certificates
- Container Registries
- Container Registry
- Databases
- Dedicated Inference
- Domain Records
- Domains
- Droplet Actions
- Droplet Autoscale Pools
- Droplets
- Firewalls
- Floating IP Actions
- Floating IPs
- Functions
- GradientAI Platform
- Image Actions
- Images
- Kubernetes
- Load Balancers
- Monitoring
- NFS
- NFS Actions
- Organizations
- Partner Network Connect
- Project Resources
- Projects
- Regions
- Reserved IP Actions
- Reserved IPs
- Reserved IPv6
- Reserved IPv6 Actions
- Security
- Sizes
- Snapshots
- Spaces Keys
- SSH Keys
- Tags
- Uptime
- Vector Databases
- VPC NAT Gateways
- VPC Peerings
- VPCs
- Create an Access Token
- Manage Model Access Keys
- OAuth API
- Reference
- Configure Remote MCP
- Configure Local MCP
- Accounts
- App Platform
- Dedicated Inference
- DBaaS
- Evaluations
- Batch Inference
- GenAI Custom Models
- DOKS
- GenAI Inference Router
- Container Registry
- Droplets
- Functions
- Insights
- Knowledge Bases
- Model Catalog
- Marketplace
- Networking
- Network File Storage
- Spaces
- Documentation
- Volumes Block Storage
- Vector Database
- Prompting Guidelines
- API Keys
- Paperspace CLI private
- account_info
- actions_info
- app
- apps_info
- balance_info
- billing_history_info
- byoip_prefix
- byoip_prefixes_info
- cdn_endpoints
- cdn_endpoints_info
- certificate
- certificates_info
- container_registry
- container_registry_info
- database_backups_info
- database_cluster
- database_clusters_info
- database_config
- database_config_info
- database_connection_pool
- database_connection_pools_info
- database_db
- database_dbs_info
- database_firewall
- database_firewall_rules_info
- database_maintenance_window
- database_replica
- database_replicas_info
- database_user
- database_users_info
- domain
- domain_record
- domain_records_info
- domains_info
- droplet
- droplet_action_power
- droplet_action_resize
- droplet_action_snapshot
- droplet_autoscale_pool
- droplet_autoscale_pools_info
- droplet_backups_info
- droplet_kernels_info
- droplet_neighbors_info
- droplet_snapshots_info
- droplets_info
- firewall
- firewalls_info
- floating_ip
- floating_ip_action
- floating_ips_info
- function_namespace
- function_namespaces_info
- image
- image_action
- images_info
- invoice_items_info
- invoices_info
- kubernetes_cluster
- kubernetes_clusters_info
- kubernetes_node_pool
- kubernetes_node_pools_info
- load_balancer
- load_balancers_info
- monitoring_alert_policies_info
- monitoring_alert_policy
- nfs
- nfs_action
- nfs_info
- one_click
- one_clicks_info
- project
- project_resource
- project_resources
- project_resources_info
- projects_info
- regions_info
- reserved_ip
- reserved_ip_assign
- reserved_ips_info
- reserved_ipv6
- reserved_ipv6_action
- reserved_ipv6s_info
- sizes_info
- snapshot
- snapshots_info
- space
- spaces_info
- spaces_key
- spaces_keys_info
- ssh_key
- ssh_keys_info
- tag
- tags_info
- uptime_alert
- uptime_alerts_info
- uptime_check
- uptime_checks_info
- uptime_checks_state_info
- volume
- volume_action
- volume_snapshot
- volumes_info
- vpc
- vpc_nat_gateway
- vpc_nat_gateways_info
- vpc_peering
- vpc_peerings_info
- vpcs_info
- Configure Terraform
- digitalocean_app
- digitalocean_byoip_prefix
- digitalocean_cdn
- digitalocean_certificate
- digitalocean_container_registry
- digitalocean_container_registry_docker_credentials
- digitalocean_custom_image
- digitalocean_database_advanced_mysql_config
- digitalocean_database_advanced_postgresql_config
- digitalocean_database_cluster
- digitalocean_database_connection_pool
- digitalocean_database_db
- digitalocean_database_firewall
- digitalocean_database_kafka_config
- digitalocean_database_kafka_schema_registry
- digitalocean_database_kafka_topic
- digitalocean_database_logsink_opensearch
- digitalocean_database_logsink_rsyslog
- digitalocean_database_mongodb_config
- digitalocean_database_mysql_config
- digitalocean_database_online_migration
- digitalocean_database_opensearch_config
- digitalocean_database_postgresql_config
- digitalocean_database_redis_config
- digitalocean_database_replica
- digitalocean_database_user
- digitalocean_database_valkey_config
- digitalocean_dedicated_inference
- digitalocean_dedicated_inference_token
- digitalocean_domain
- digitalocean_droplet
- digitalocean_droplet_autoscale
- digitalocean_droplet_snapshot
- digitalocean_firewall
- digitalocean_floating_ip
- digitalocean_floating_ip_assignment
- digitalocean_genai_agent
- digitalocean_gradientai_agent
- digitalocean_kubernetes_cluster
- digitalocean_kubernetes_node_pool
- digitalocean_loadbalancer
- digitalocean_microdroplet
- digitalocean_microdroplet_image
- digitalocean_monitor_alert
- digitalocean_nfs
- digitalocean_nfs_access_point
- digitalocean_nfs_attachment
- digitalocean_nfs_snapshot
- digitalocean_partner_attachment
- digitalocean_project
- digitalocean_project_resources
- digitalocean_record
- digitalocean_reserved_ip
- digitalocean_reserved_ip_assignment
- digitalocean_reserved_ipv6
- digitalocean_reserved_ipv6_assignment
- digitalocean_spaces_bucket
- digitalocean_spaces_bucket_logging
- digitalocean_spaces_bucket_object
- digitalocean_spaces_bucket_policy
- digitalocean_spaces_cors_configuration
- digitalocean_spaces_key
- digitalocean_ssh_key
- digitalocean_tag
- digitalocean_uptime_alert
- digitalocean_uptime_check
- digitalocean_vector_database
- digitalocean_volume
- digitalocean_volume_attachment
- digitalocean_volume_snapshot
- digitalocean_vpc
- digitalocean_vpc_nat_gateway
- digitalocean_vpc_peering
- digitalocean_account
- digitalocean_app
- digitalocean_byoip_prefix
- digitalocean_byoip_prefix_resources
- digitalocean_certificate
- digitalocean_container_registry
- digitalocean_database_ca
- digitalocean_database_cluster
- digitalocean_database_connection_pool
- digitalocean_database_metrics_credentials
- digitalocean_database_replica
- digitalocean_database_user
- digitalocean_dedicated_inference
- digitalocean_dedicated_inference_accelerators
- digitalocean_dedicated_inference_gpu_model_config
- digitalocean_dedicated_inference_sizes
- digitalocean_dedicated_inference_tokens
- digitalocean_dedicated_inferences
- digitalocean_domain
- digitalocean_domains
- digitalocean_droplet
- digitalocean_droplet_autoscale
- digitalocean_droplet_snapshot
- digitalocean_droplets
- digitalocean_firewall
- digitalocean_floating_ip
- digitalocean_genai_agent
- digitalocean_gradientai_agent
- digitalocean_image
- digitalocean_images
- digitalocean_kubernetes_cluster
- digitalocean_kubernetes_versions
- digitalocean_loadbalancer
- digitalocean_microdroplet
- digitalocean_microdroplet_checkpoints
- digitalocean_microdroplet_image
- digitalocean_microdroplet_images
- digitalocean_microdroplets
- digitalocean_nfs
- digitalocean_nfs_access_point
- digitalocean_nfs_snapshot
- digitalocean_partner_attachment
- digitalocean_partner_attachment_service_key
- digitalocean_project
- digitalocean_projects
- digitalocean_record
- digitalocean_records
- digitalocean_region
- digitalocean_regions
- digitalocean_reserved_ip
- digitalocean_reserved_ipv6
- digitalocean_sizes
- digitalocean_spaces_bucket
- digitalocean_spaces_bucket_object
- digitalocean_spaces_bucket_objects
- digitalocean_spaces_buckets
- digitalocean_spaces_key
- digitalocean_ssh_key
- digitalocean_ssh_keys
- digitalocean_tag
- digitalocean_tags
- digitalocean_vector_database
- digitalocean_volume
- digitalocean_volume_snapshot
- digitalocean_vpc
- digitalocean_vpc_nat_gateway
- digitalocean_vpc_peering
- Deploy a Web App
- assign_alert_destinations()
- cancel_deployment()
- cancel_event()
- cancel_job_invocation()
- commit_rollback()
- create()
- create_deployment()
- create_rollback()
- delete()
- get()
- get_deployment()
- get_event()
- get_event_logs()
- get_exec()
- get_exec_active_deployment()
- get_health()
- get_instance_size()
- get_instances()
- get_job_invocation()
- get_job_invocation_logs()
- get_logs()
- get_logs_active_deployment()
- get_logs_active_deployment_aggregate()
- get_logs_aggregate()
- get_metrics_bandwidth_daily()
- list()
- list_alerts()
- list_deployments()
- list_events()
- list_instance_sizes()
- list_job_invocations()
- list_metrics_bandwidth_daily()
- list_regions()
- restart()
- revert_rollback()
- update()
- validate_app_spec()
- validate_rollback()
- add()
- add_connection_pool()
- add_user()
- create_cluster()
- create_kafka_schema()
- create_kafka_topic()
- create_logsink()
- create_replica()
- delete()
- delete_connection_pool()
- delete_kafka_schema()
- delete_kafka_topic()
- delete_logsink()
- delete_online_migration()
- delete_opensearch_index()
- delete_user()
- destroy_cluster()
- destroy_replica()
- get()
- get_autoscale()
- get_ca()
- get_cluster()
- get_cluster_metrics_credentials()
- get_config()
- get_connection_pool()
- get_do_settings()
- get_eviction_policy()
- get_kafka_schema()
- get_kafka_schema_config()
- get_kafka_schema_subject_config()
- get_kafka_schema_version()
- get_kafka_topic()
- get_logsink()
- get_migration_status()
- get_replica()
- get_sql_mode()
- get_user()
- install_update()
- list()
- list_backups()
- list_clusters()
- list_connection_pools()
- list_events_logs()
- list_firewall_rules()
- list_kafka_schemas()
- list_kafka_topics()
- list_logsink()
- list_opeasearch_indexes()
- list_options()
- list_replicas()
- list_users()
- patch_config()
- promote_replica()
- reset_auth()
- update_autoscale()
- update_cluster_metrics_credentials()
- update_cluster_size()
- update_connection_pool()
- update_do_settings()
- update_eviction_policy()
- update_firewall_rules()
- update_kafka_schema_config()
- update_kafka_schema_subject_config()
- update_kafka_topic()
- update_logsink()
- update_maintenance_window()
- update_major_version()
- update_online_migration()
- update_region()
- update_sql_mode()
- update_user()
- create()
- destroy()
- destroy_by_tag()
- destroy_retry_with_associated_resources()
- destroy_with_associated_resources_dangerous()
- destroy_with_associated_resources_selective()
- get()
- get_backup_policy()
- get_destroy_associated_resources_status()
- list()
- list_associated_resources()
- list_backup_policies()
- list_backups()
- list_firewalls()
- list_kernels()
- list_neighbors()
- list_neighbors_ids()
- list_snapshots()
- list_supported_backup_policies()
- attach_agent()
- attach_agent_function()
- attach_agent_guardrails()
- attach_knowledge_base()
- attach_knowledge_bases()
- cancel_indexing_job()
- cancel_model_evaluation_run()
- create_agent()
- create_agent_api_key()
- create_anthropic_api_key()
- create_custom_evaluation_metric()
- create_data_source_file_upload_presigned_urls()
- create_evaluation_dataset()
- create_evaluation_dataset_file_upload_presigned_urls()
- create_evaluation_test_case()
- create_indexing_job()
- create_knowledge_base()
- create_knowledge_base_data_source()
- create_model_api_key()
- create_model_eval_dataset_upload_presigned_urls()
- create_model_evaluation_run()
- create_model_router()
- create_oauth2_dropbox_tokens()
- create_openai_api_key()
- create_scheduled_indexing()
- create_workspace()
- delete_agent()
- delete_agent_api_key()
- delete_anthropic_api_key()
- delete_custom_evaluation_metric()
- delete_custom_model()
- delete_evaluation_dataset()
- delete_knowledge_base()
- delete_knowledge_base_data_source()
- delete_model_api_key()
- delete_model_evaluation_preset()
- delete_model_evaluation_run()
- delete_model_router()
- delete_openai_api_key()
- delete_scheduled_indexing()
- delete_workspace()
- detach_agent()
- detach_agent_function()
- detach_agent_guardrail()
- detach_knowledge_base()
- get_agent()
- get_agent_children()
- get_agent_usage()
- get_anthropic_api_key()
- get_custom_model()
- get_evaluation_dataset_download_url()
- get_evaluation_run()
- get_evaluation_run_prompt_results()
- get_evaluation_run_results()
- get_evaluation_test_case()
- get_indexing_job()
- get_indexing_job_details_signed_url()
- get_knowledge_base()
- get_model_catalog_card()
- get_model_evaluation_preset()
- get_model_evaluation_run()
- get_model_evaluation_run_results_download_url()
- get_model_router()
- get_oauth2_url()
- get_openai_api_key()
- get_scheduled_indexing()
- get_workspace()
- import_custom_model()
- list_agent_api_keys()
- list_agent_versions()
- list_agents()
- list_agents_by_anthropic_key()
- list_agents_by_openai_key()
- list_agents_by_workspace()
- list_anthropic_api_keys()
- list_custom_models()
- list_datacenter_regions()
- list_evaluation_datasets()
- list_evaluation_metrics()
- list_evaluation_runs_by_test_case()
- list_evaluation_test_cases()
- list_evaluation_test_cases_by_workspace()
- list_indexing_job_data_sources()
- list_indexing_jobs()
- list_indexing_jobs_by_knowledge_base()
- list_knowledge_base_data_sources()
- list_knowledge_bases()
- list_model_api_keys()
- list_model_catalog()
- list_model_evaluation_metrics()
- list_model_evaluation_presets()
- list_model_evaluation_runs()
- list_model_router_presets()
- list_model_router_task_presets()
- list_model_routers()
- list_models()
- list_openai_api_keys()
- list_workspaces()
- regenerate_agent_api_key()
- regenerate_model_api_key()
- rollback_to_agent_version()
- run_evaluation_test_case()
- update_agent()
- update_agent_api_key()
- update_agent_deployment_visibility()
- update_agent_function()
- update_agents_workspace()
- update_anthropic_api_key()
- update_attached_agent()
- update_custom_evaluation_metric()
- update_custom_model_metadata()
- update_evaluation_test_case()
- update_knowledge_base()
- update_knowledge_base_data_source()
- update_model_api_key()
- update_model_evaluation_run()
- update_model_router()
- update_openai_api_key()
- update_workspace()
- add_node_pool()
- add_registries()
- add_registry()
- create_cluster()
- delete_cluster()
- delete_node()
- delete_node_pool()
- destroy_associated_resources_dangerous()
- destroy_associated_resources_selective()
- get_available_upgrades()
- get_cluster()
- get_cluster_lint_results()
- get_cluster_user()
- get_credentials()
- get_kubeconfig()
- get_node_pool()
- get_status_messages()
- list_associated_resources()
- list_clusters()
- list_node_pools()
- list_options()
- recycle_node_pool()
- remove_registries()
- remove_registry()
- run_cluster_lint()
- update_cluster()
- update_node_pool()
- upgrade_cluster()
- create_alert_policy()
- create_destination()
- create_sink()
- delete_alert_policy()
- delete_destination()
- delete_sink()
- get_alert_policy()
- get_app_cpupercentage_metrics()
- get_app_memory_percentage_metrics()
- get_app_restart_count_metrics.yml()
- get_database_mysql_cpu_usage()
- get_database_mysql_disk_usage()
- get_database_mysql_index_vs_sequential_reads()
- get_database_mysql_load()
- get_database_mysql_memory_usage()
- get_database_mysql_op_rates()
- get_database_mysql_schema_latency()
- get_database_mysql_schema_throughput()
- get_database_mysql_threads_active()
- get_database_mysql_threads_connected()
- get_database_mysql_threads_created_rate()
- get_destination()
- get_droplet_autoscale_current_cpu_utilization.yml()
- get_droplet_autoscale_current_instances()
- get_droplet_autoscale_current_memory_utilization()
- get_droplet_autoscale_target_cpu_utilization()
- get_droplet_autoscale_target_instances()
- get_droplet_autoscale_target_memory_utilization()
- get_droplet_bandwidth_metrics()
- get_droplet_cpu_metrics()
- get_droplet_filesystem_free_metrics()
- get_droplet_filesystem_size_metrics()
- get_droplet_load15_metrics()
- get_droplet_load1_metrics()
- get_droplet_load5_metrics()
- get_droplet_memory_available_metrics()
- get_droplet_memory_cached_metrics()
- get_droplet_memory_free_metrics()
- get_droplet_memory_total_metrics()
- get_lb_droplets_connections()
- get_lb_droplets_downtime()
- get_lb_droplets_health_checks()
- get_lb_droplets_http_response_time_50p()
- get_lb_droplets_http_response_time_95p()
- get_lb_droplets_http_response_time_99p()
- get_lb_droplets_http_response_time_avg()
- get_lb_droplets_http_responses()
- get_lb_droplets_http_session_duration_50p()
- get_lb_droplets_http_session_duration_95p()
- get_lb_droplets_http_session_duration_avg()
- get_lb_droplets_queue_size()
- get_lb_frontend_connections_current()
- get_lb_frontend_connections_limit()
- get_lb_frontend_cpu_utilization()
- get_lb_frontend_firewall_dropped_bytes()
- get_lb_frontend_firewall_dropped_packets()
- get_lb_frontend_http_requests_per_second()
- get_lb_frontend_http_responses()
- get_lb_frontend_network_throughput_http()
- get_lb_frontend_network_throughput_tcp()
- get_lb_frontend_network_throughput_udp()
- get_lb_frontend_nlb_tcp_network_throughput()
- get_lb_frontend_nlb_udp_network_throughput()
- get_lb_frontend_tls_connections_current()
- get_lb_frontend_tls_connections_exceeding_rate_limit()
- get_lb_frontend_tls_connections_limit()
- get_sink()
- list_alert_policy()
- list_destinations()
- list_sinks()
- update_alert_policy()
- update_destination()
- create()
- delete()
- delete_repository()
- delete_repository_manifest()
- delete_repository_tag()
- get()
- get_docker_credentials()
- get_garbage_collection()
- get_options()
- get_subscription()
- list()
- list_garbage_collections()
- list_repositories_v2()
- list_repository_manifests()
- list_repository_tags()
- run_garbage_collection()
- update_garbage_collection()
- update_subscription()
- validate_name()
- create()
- delete()
- delete_repository_manifest()
- delete_repository_tag()
- get()
- get_docker_credentials()
- get_garbage_collection()
- get_options()
- get_subscription()
- list_garbage_collections()
- list_repositories()
- list_repositories_v2()
- list_repository_manifests()
- list_repository_tags()
- run_garbage_collection()
- update_garbage_collection()
- update_subscription()
- validate_name()
- create_scan()
- create_scan_rule()
- create_secret()
- create_suppression()
- delete_secret()
- delete_suppression()
- get_latest_scan()
- get_scan()
- get_secret()
- list_scan_finding_affected_resources()
- list_scans()
- list_secret_versions()
- list_secrets()
- list_settings()
- post_restore_secret()
- update_secret()
- update_settings_plan()
-
[libraries.f718f930c4f806c3d2f8548b78661d1b4e835959e441cd3499fb93dac044b021.svg]Libraries
-
[opensource.e3aaf41478fe88f6808cf399b9357d9d23fe3f04f3a9ed58f6cc7b261f2e04c3.svg]Open Source
- Collection Reference
- Modules
- firewall
For AI agents: The documentation index is at https://docs.digitalocean.com/llms.txt. Markdown versions of pages use the same URL with
index.html.mdin place of the HTML page (for example, appendindex.html.mdto the directory path instead of opening the HTML document).
firewall
Last verified 29 Apr 2026
Synopsis
Create or delete firewalls. DigitalOcean Cloud Firewalls provide the ability to restrict network access to and from a Droplet allowing you to define which ports will accept inbound or outbound connections. View the create API documentation at https://docs.digitalocean.com/reference/api/api-reference/#tag/Firewalls.
Requirements
- pydo >= 0.1.3
- azure-core >= 1.26.1
Parameters
| Parameter | Choices / Default | Description |
|---|---|---|
client_override_optionsdict |
Client override options (developer use). For example, can be used to override the DigitalOcean API endpoint for an internal test suite. If provided, these options will knock out existing options. | |
droplet_idslist / elements=int |
An array containing the IDs of the Droplets assigned to the firewall. | |
inbound_ruleslist / elements=dict |
Array of inbound firewall rules. | |
module_override_optionsdict |
Module override options (developer use). Can be used to override module options to support experimental or future options. If provided, these options will knock out existing options. | |
namestr / required |
A human-readable name for a firewall. The name must begin with an alphanumeric character. Subsequent characters must either be alphanumeric characters, a period (.), or a dash (-). | |
outbound_ruleslist / elements=dict |
Array of outbound firewall rules. | |
statestr |
Choices:
|
State of the resource, present to create, absent to destroy. |
tagslist / elements=str |
A flat array of tag names as strings to be applied to the resource. Tag names may be for either existing or new tags. | |
timeoutint |
Default: 300 |
Polling timeout in seconds. |
tokenstr |
DigitalOcean API token. There are several environment variables which can be used to provide this value. DIGITALOCEAN_ACCESS_TOKEN, DIGITALOCEAN_TOKEN, DO_API_TOKEN, DO_API_KEY, DO_OAUTH_TOKEN and OAUTH_TOKEN |
Examples
- name: Create firewall
digitalocean.cloud.firewall:
token: "{{ token }}"
state: present
name: firewall
inbound_rules:
- protocol: tcp
ports: 80
sources:
- load_balancer_uids:
- "4de7ac8b-495b-4884-9a69-1050c6793cd6"
outbound_rules:
- protocol: tcp
ports: 80
destinations:
- addresses:
- "0.0.0.0/0"
- "::/0"
droplet_ids:
- 8043964Return Values
| Key | Returned | Description |
|---|---|---|
errordict |
failure | DigitalOcean API error. Sample: |
firewalldict |
always | Firewall information. Sample: |
msgstr |
always | Droplet result information. Sample: |
In this article...