diff --git a/.rubocop_todo/graphql/descriptions.yml b/.rubocop_todo/graphql/descriptions.yml
index 73e8fa8777df9635a238d3ea1ba3675cec2c6cea..58317bbc1b43428d6e4c3adc24455e7a5132b9c1 100644
--- a/.rubocop_todo/graphql/descriptions.yml
+++ b/.rubocop_todo/graphql/descriptions.yml
@@ -80,7 +80,6 @@ Graphql/Descriptions:
     - 'ee/app/graphql/types/epic_type.rb'
     - 'ee/app/graphql/types/geo/geo_node_type.rb'
     - 'ee/app/graphql/types/iterations/cadence_type.rb'
-    - 'ee/app/graphql/types/network_policy_type.rb'
     - 'ee/app/graphql/types/path_lock_type.rb'
     - 'ee/app/graphql/types/security_orchestration/group_security_policy_source_type.rb'
     - 'ee/app/graphql/types/security_orchestration/orchestration_policy_type.rb'
diff --git a/.rubocop_todo/graphql/enum_values.yml b/.rubocop_todo/graphql/enum_values.yml
index 3a6446c512cc0f3aa59a2503b07a1f0c87279b74..321812774f870f877777359b5c14ea552cf800c0 100644
--- a/.rubocop_todo/graphql/enum_values.yml
+++ b/.rubocop_todo/graphql/enum_values.yml
@@ -30,7 +30,6 @@ Graphql/EnumValues:
     - 'ee/app/graphql/types/incident_management/issuable_resource_link_type_enum.rb'
     - 'ee/app/graphql/types/iteration_state_enum.rb'
     - 'ee/app/graphql/types/move_type_enum.rb'
-    - 'ee/app/graphql/types/network_policy_kind_enum.rb'
     - 'ee/app/graphql/types/security_scanner_type_enum.rb'
     - 'ee/app/graphql/types/vulnerability_report_type_enum.rb'
     - 'ee/app/graphql/types/vulnerability_sort_enum.rb'
diff --git a/.rubocop_todo/layout/argument_alignment.yml b/.rubocop_todo/layout/argument_alignment.yml
index 4e9dc1477b86293af225113ccb5ebcf82825048b..ff98faaac2c88af13b8b1063a4da39030f69abd7 100644
--- a/.rubocop_todo/layout/argument_alignment.yml
+++ b/.rubocop_todo/layout/argument_alignment.yml
@@ -661,7 +661,6 @@ Layout/ArgumentAlignment:
     - 'ee/app/graphql/resolvers/incident_management/oncall_shifts_resolver.rb'
     - 'ee/app/graphql/resolvers/instance_security_dashboard/projects_resolver.rb'
     - 'ee/app/graphql/resolvers/iterations_resolver.rb'
-    - 'ee/app/graphql/resolvers/network_policy_resolver.rb'
     - 'ee/app/graphql/resolvers/pipeline_security_report_findings_resolver.rb'
     - 'ee/app/graphql/resolvers/product_analytics/dashboards_resolver.rb'
     - 'ee/app/graphql/resolvers/requirements_management/requirements_resolver.rb'
@@ -738,7 +737,6 @@ Layout/ArgumentAlignment:
     - 'ee/app/graphql/types/incident_management/oncall_user_input_type.rb'
     - 'ee/app/graphql/types/instance_security_dashboard_type.rb'
     - 'ee/app/graphql/types/metric_image_type.rb'
-    - 'ee/app/graphql/types/network_policy_type.rb'
     - 'ee/app/graphql/types/path_lock_type.rb'
     - 'ee/app/graphql/types/permission_types/epic.rb'
     - 'ee/app/graphql/types/permission_types/requirement.rb'
diff --git a/.rubocop_todo/layout/line_length.yml b/.rubocop_todo/layout/line_length.yml
index e76c501ca8960916a42e8db2be649ae1c16f7572..20e0c2c9e26be5b214a849e0201acb1cc9d6e0ce 100644
--- a/.rubocop_todo/layout/line_length.yml
+++ b/.rubocop_todo/layout/line_length.yml
@@ -1428,7 +1428,6 @@ Layout/LineLength:
     - 'ee/spec/graphql/resolvers/incident_management/oncall_schedule_resolver_spec.rb'
     - 'ee/spec/graphql/resolvers/iterations/cadences_resolver_spec.rb'
     - 'ee/spec/graphql/resolvers/iterations_resolver_spec.rb'
-    - 'ee/spec/graphql/resolvers/network_policy_resolver_spec.rb'
     - 'ee/spec/graphql/resolvers/pipeline_security_report_findings_resolver_spec.rb'
     - 'ee/spec/graphql/resolvers/requirements_management/requirements_resolver_spec.rb'
     - 'ee/spec/graphql/resolvers/requirements_management/test_reports_resolver_spec.rb'
diff --git a/.rubocop_todo/lint/missing_cop_enable_directive.yml b/.rubocop_todo/lint/missing_cop_enable_directive.yml
index 5a4e8c8bb654ac3fb37fe8bdc994941c34b2c905..4c4abfefe95e2b33af346c6c166896136d059422 100644
--- a/.rubocop_todo/lint/missing_cop_enable_directive.yml
+++ b/.rubocop_todo/lint/missing_cop_enable_directive.yml
@@ -76,7 +76,6 @@ Lint/MissingCopEnableDirective:
     - 'ee/app/graphql/types/ci/minutes/namespace_monthly_usage_type.rb'
     - 'ee/app/graphql/types/ci/minutes/project_monthly_usage_type.rb'
     - 'ee/app/graphql/types/dast/profile_cadence_type.rb'
-    - 'ee/app/graphql/types/network_policy_type.rb'
     - 'ee/app/graphql/types/scan_type.rb'
     - 'ee/app/graphql/types/scanned_resource_type.rb'
     - 'ee/app/graphql/types/security_report_summary_section_type.rb'
diff --git a/.rubocop_todo/rspec/feature_category.yml b/.rubocop_todo/rspec/feature_category.yml
index 6d35e6ecf9b4e9eedc26e9b427119ac0c8492980..b27cf817205155b030f7c9ef0fb16d4c0b34105a 100644
--- a/.rubocop_todo/rspec/feature_category.yml
+++ b/.rubocop_todo/rspec/feature_category.yml
@@ -225,7 +225,6 @@ RSpec/FeatureCategory:
     - 'ee/spec/graphql/resolvers/instance_security_dashboard_resolver_spec.rb'
     - 'ee/spec/graphql/resolvers/iterations/cadences_resolver_spec.rb'
     - 'ee/spec/graphql/resolvers/iterations_resolver_spec.rb'
-    - 'ee/spec/graphql/resolvers/network_policy_resolver_spec.rb'
     - 'ee/spec/graphql/resolvers/path_locks_resolver_spec.rb'
     - 'ee/spec/graphql/resolvers/product_analytics/visualization_resolver_spec.rb'
     - 'ee/spec/graphql/resolvers/requirements_management/requirements_resolver_spec.rb'
@@ -320,8 +319,6 @@ RSpec/FeatureCategory:
     - 'ee/spec/graphql/types/merge_requests/approval_state_type_spec.rb'
     - 'ee/spec/graphql/types/metric_image_type_spec.rb'
     - 'ee/spec/graphql/types/move_type_enum_spec.rb'
-    - 'ee/spec/graphql/types/network_policy_kind_enum_spec.rb'
-    - 'ee/spec/graphql/types/network_policy_type_spec.rb'
     - 'ee/spec/graphql/types/path_lock_type_spec.rb'
     - 'ee/spec/graphql/types/permission_types/epic_spec.rb'
     - 'ee/spec/graphql/types/permission_types/project_spec.rb'
diff --git a/.rubocop_todo/style/inline_disable_annotation.yml b/.rubocop_todo/style/inline_disable_annotation.yml
index 0a0837283550af542e80ffb29c349e08908cc9d6..c9d95369df31b0cbbd541706c41ee461a7b39c7d 100644
--- a/.rubocop_todo/style/inline_disable_annotation.yml
+++ b/.rubocop_todo/style/inline_disable_annotation.yml
@@ -1304,7 +1304,6 @@ Style/InlineDisableAnnotation:
     - 'ee/app/graphql/types/incident_management/oncall_shift_type.rb'
     - 'ee/app/graphql/types/member_roles/customizable_permission_type.rb'
     - 'ee/app/graphql/types/namespaces/namespace_ban_type.rb'
-    - 'ee/app/graphql/types/network_policy_type.rb'
     - 'ee/app/graphql/types/path_lock_type.rb'
     - 'ee/app/graphql/types/product_analytics/category_enum.rb'
     - 'ee/app/graphql/types/product_analytics/panel_type.rb'
diff --git a/doc/api/graphql/reference/index.md b/doc/api/graphql/reference/index.md
index fbae22b968136747f92d2284cce2368a614fb4ff..6fb4ebf591d85aeb692e16afe862402b86c23e6b 100644
--- a/doc/api/graphql/reference/index.md
+++ b/doc/api/graphql/reference/index.md
@@ -13240,29 +13240,6 @@ The edge type for [`NestedEnvironment`](#nestedenvironment).
 | <a id="nestedenvironmentedgecursor"></a>`cursor` | [`String!`](#string) | A cursor for use in pagination. |
 | <a id="nestedenvironmentedgenode"></a>`node` | [`NestedEnvironment`](#nestedenvironment) | The item at the end of the edge. |
 
-#### `NetworkPolicyConnection`
-
-The connection type for [`NetworkPolicy`](#networkpolicy).
-
-##### Fields
-
-| Name | Type | Description |
-| ---- | ---- | ----------- |
-| <a id="networkpolicyconnectionedges"></a>`edges` | [`[NetworkPolicyEdge]`](#networkpolicyedge) | A list of edges. |
-| <a id="networkpolicyconnectionnodes"></a>`nodes` | [`[NetworkPolicy]`](#networkpolicy) | A list of nodes. |
-| <a id="networkpolicyconnectionpageinfo"></a>`pageInfo` | [`PageInfo!`](#pageinfo) | Information to aid in pagination. |
-
-#### `NetworkPolicyEdge`
-
-The edge type for [`NetworkPolicy`](#networkpolicy).
-
-##### Fields
-
-| Name | Type | Description |
-| ---- | ---- | ----------- |
-| <a id="networkpolicyedgecursor"></a>`cursor` | [`String!`](#string) | A cursor for use in pagination. |
-| <a id="networkpolicyedgenode"></a>`node` | [`NetworkPolicy`](#networkpolicy) | The item at the end of the edge. |
-
 #### `NoteConnection`
 
 The connection type for [`Note`](#note).
@@ -25243,23 +25220,6 @@ Describes where code is deployed for a project organized by folder.
 | <a id="nestedenvironmentname"></a>`name` | [`String!`](#string) | Human-readable name of the environment. |
 | <a id="nestedenvironmentsize"></a>`size` | [`Int!`](#int) | Number of environments nested in the folder. |
 
-### `NetworkPolicy`
-
-Represents the network policy.
-
-#### Fields
-
-| Name | Type | Description |
-| ---- | ---- | ----------- |
-| <a id="networkpolicyenabled"></a>`enabled` | [`Boolean!`](#boolean) | Indicates whether this policy is enabled. |
-| <a id="networkpolicyenvironments"></a>`environments` | [`EnvironmentConnection`](#environmentconnection) | Environments where this policy is applied. (see [Connections](#connections)) |
-| <a id="networkpolicyfromautodevops"></a>`fromAutoDevops` | [`Boolean!`](#boolean) | Indicates whether this policy is created from AutoDevops. |
-| <a id="networkpolicykind"></a>`kind` | [`NetworkPolicyKind!`](#networkpolicykind) | Kind of the policy. |
-| <a id="networkpolicyname"></a>`name` | [`String!`](#string) | Name of the policy. |
-| <a id="networkpolicynamespace"></a>`namespace` | [`String!`](#string) | Namespace of the policy. |
-| <a id="networkpolicyupdatedat"></a>`updatedAt` | [`Time!`](#time) | Timestamp of when the policy YAML was last updated. |
-| <a id="networkpolicyyaml"></a>`yaml` | [`String!`](#string) | YAML definition of the policy. |
-
 ### `Note`
 
 #### Fields
@@ -27410,26 +27370,6 @@ four standard [pagination arguments](#pagination-arguments):
 | <a id="projectnestedenvironmentsstates"></a>`states` | [`[String!]`](#string) | States of environments that should be included in result. |
 | <a id="projectnestedenvironmentstype"></a>`type` | [`String`](#string) | Search query for environment type. |
 
-##### `Project.networkPolicies`
-
-Network Policies of the project.
-
-DETAILS:
-**Deprecated** in GitLab 14.8.
-Network policies are deprecated and will be removed in GitLab 17.0. This field returns no data in GitLab 15.0 and later.
-
-Returns [`NetworkPolicyConnection`](#networkpolicyconnection).
-
-This field returns a [connection](#connections). It accepts the
-four standard [pagination arguments](#pagination-arguments):
-`before: String`, `after: String`, `first: Int`, and `last: Int`.
-
-###### Arguments
-
-| Name | Type | Description |
-| ---- | ---- | ----------- |
-| <a id="projectnetworkpoliciesenvironmentid"></a>`environmentId` | [`EnvironmentID`](#environmentid) | Global ID of the environment to filter policies. |
-
 ##### `Project.packages`
 
 Packages of the project.
@@ -33467,15 +33407,6 @@ Negated Milestone ID wildcard values.
 | <a id="negatedmilestonewildcardidstarted"></a>`STARTED` | Milestone assigned is open and yet to be started (start date > today). |
 | <a id="negatedmilestonewildcardidupcoming"></a>`UPCOMING` | Milestone assigned is open but due in the past (due date <= today). |
 
-### `NetworkPolicyKind`
-
-Kind of the network policy.
-
-| Value | Description |
-| ----- | ----------- |
-| <a id="networkpolicykindciliumnetworkpolicy"></a>`CiliumNetworkPolicy` | Policy kind of Cilium Network Policy. |
-| <a id="networkpolicykindnetworkpolicy"></a>`NetworkPolicy` | Policy kind of Network Policy. |
-
 ### `NotesFilterType`
 
 Work item notes collection type.
diff --git a/ee/app/graphql/ee/types/project_type.rb b/ee/app/graphql/ee/types/project_type.rb
index f301b0eabba4044d4e69a2b8f4362712f50274c1..f496a18dfdc5243674de8f162a27d1f024b9c87b 100644
--- a/ee/app/graphql/ee/types/project_type.rb
+++ b/ee/app/graphql/ee/types/project_type.rb
@@ -217,17 +217,6 @@ module ProjectType
           description: 'Security policy project suggestions',
           resolver: ::Resolvers::SecurityOrchestration::SecurityPolicyProjectSuggestionsResolver
 
-        field :network_policies,
-              ::Types::NetworkPolicyType.connection_type,
-              null: true,
-              deprecated: {
-                reason: 'Network policies are deprecated and will be removed in GitLab 17.0. This field returns ' \
-                        'no data in GitLab 15.0 and later',
-                milestone: '14.8'
-              },
-              description: 'Network Policies of the project',
-              resolver: ::Resolvers::NetworkPolicyResolver
-
         field :dora,
               ::Types::DoraType,
               null: true,
diff --git a/ee/app/graphql/resolvers/network_policy_resolver.rb b/ee/app/graphql/resolvers/network_policy_resolver.rb
deleted file mode 100644
index 7866a55295249dcd227d1d9716cf78f4f051e159..0000000000000000000000000000000000000000
--- a/ee/app/graphql/resolvers/network_policy_resolver.rb
+++ /dev/null
@@ -1,18 +0,0 @@
-# frozen_string_literal: true
-
-module Resolvers
-  class NetworkPolicyResolver < BaseResolver
-    type Types::NetworkPolicyType, null: true
-
-    argument :environment_id,
-             ::Types::GlobalIDType[::Environment],
-             required: false,
-             description: 'Global ID of the environment to filter policies.'
-
-    alias_method :project, :object
-
-    def resolve(**)
-      []
-    end
-  end
-end
diff --git a/ee/app/graphql/types/network_policy_kind_enum.rb b/ee/app/graphql/types/network_policy_kind_enum.rb
deleted file mode 100644
index 556f7c5566bb288ddc3afda5558eb5cb57f9be35..0000000000000000000000000000000000000000
--- a/ee/app/graphql/types/network_policy_kind_enum.rb
+++ /dev/null
@@ -1,11 +0,0 @@
-# frozen_string_literal: true
-
-module Types
-  class NetworkPolicyKindEnum < BaseEnum
-    graphql_name 'NetworkPolicyKind'
-    description 'Kind of the network policy'
-
-    value 'CiliumNetworkPolicy', 'Policy kind of Cilium Network Policy.'
-    value 'NetworkPolicy', 'Policy kind of Network Policy.'
-  end
-end
diff --git a/ee/app/graphql/types/network_policy_type.rb b/ee/app/graphql/types/network_policy_type.rb
deleted file mode 100644
index 2b5f8fdb7e2314021680c2a5a33b6a9c34a24b36..0000000000000000000000000000000000000000
--- a/ee/app/graphql/types/network_policy_type.rb
+++ /dev/null
@@ -1,53 +0,0 @@
-# frozen_string_literal: true
-
-module Types
-  # rubocop: disable Graphql/AuthorizeTypes
-  class NetworkPolicyType < BaseObject
-    graphql_name 'NetworkPolicy'
-    description 'Represents the network policy'
-
-    field :name,
-          GraphQL::Types::String,
-          null: false,
-          description: 'Name of the policy.'
-
-    field :kind,
-          NetworkPolicyKindEnum,
-          null: false,
-          description: 'Kind of the policy.'
-
-    field :namespace,
-          GraphQL::Types::String,
-          null: false,
-          description: 'Namespace of the policy.'
-
-    field :enabled,
-          GraphQL::Types::Boolean,
-          null: false,
-          description: 'Indicates whether this policy is enabled.'
-
-    field :from_auto_devops,
-          GraphQL::Types::Boolean,
-          null: false,
-          description: 'Indicates whether this policy is created from AutoDevops.'
-
-    field :yaml,
-          GraphQL::Types::String,
-          null: false,
-          description: 'YAML definition of the policy.'
-
-    field :updated_at,
-          Types::TimeType,
-          null: false,
-          description: 'Timestamp of when the policy YAML was last updated.'
-
-    field :environments,
-          Types::EnvironmentType.connection_type,
-          null: true,
-          description: 'Environments where this policy is applied.'
-
-    def environments
-      []
-    end
-  end
-end
diff --git a/ee/spec/graphql/resolvers/network_policy_resolver_spec.rb b/ee/spec/graphql/resolvers/network_policy_resolver_spec.rb
deleted file mode 100644
index 943fde838ad823b2ca722e7df0ee4348f6894fbf..0000000000000000000000000000000000000000
--- a/ee/spec/graphql/resolvers/network_policy_resolver_spec.rb
+++ /dev/null
@@ -1,35 +0,0 @@
-# frozen_string_literal: true
-
-require 'spec_helper'
-
-RSpec.describe Resolvers::NetworkPolicyResolver do
-  include GraphqlHelpers
-
-  let_it_be(:project) { create(:project) }
-
-  let(:user) { project.first_owner }
-
-  specify do
-    expect(described_class).to have_nullable_graphql_type(Types::NetworkPolicyType)
-  end
-
-  describe '#resolve' do
-    subject(:resolve_network_policies) { resolve(described_class, obj: project, args: { environment_id: environment_id }, ctx: { current_user: user }) }
-
-    let(:environment_id) { nil }
-
-    context 'when environment_id is not provided' do
-      it 'returns empty array' do
-        expect(resolve_network_policies).to eq([])
-      end
-    end
-
-    context 'when environment_id is provided' do
-      let(:environment_id) { global_id_of(model_name: 'Environment', id: 31) }
-
-      it 'returns empty array' do
-        expect(resolve_network_policies).to eq([])
-      end
-    end
-  end
-end
diff --git a/ee/spec/graphql/types/network_policy_kind_enum_spec.rb b/ee/spec/graphql/types/network_policy_kind_enum_spec.rb
deleted file mode 100644
index 37832265ad7069c2ab3af9e3f3baa3c77cd98916..0000000000000000000000000000000000000000
--- a/ee/spec/graphql/types/network_policy_kind_enum_spec.rb
+++ /dev/null
@@ -1,9 +0,0 @@
-# frozen_string_literal: true
-
-require 'spec_helper'
-
-RSpec.describe GitlabSchema.types['NetworkPolicyKind'] do
-  it 'exposes all kinds of network policies' do
-    expect(described_class.values.keys).to contain_exactly(*%w[CiliumNetworkPolicy NetworkPolicy])
-  end
-end
diff --git a/ee/spec/graphql/types/network_policy_type_spec.rb b/ee/spec/graphql/types/network_policy_type_spec.rb
deleted file mode 100644
index bba773062d47d20fe749189446735194d5934d5f..0000000000000000000000000000000000000000
--- a/ee/spec/graphql/types/network_policy_type_spec.rb
+++ /dev/null
@@ -1,20 +0,0 @@
-# frozen_string_literal: true
-
-require 'spec_helper'
-
-RSpec.describe GitlabSchema.types['NetworkPolicy'] do
-  it { expect(described_class.graphql_name).to eq('NetworkPolicy') }
-
-  it 'has the expected fields' do
-    expect(described_class).to have_graphql_fields(
-      :name,
-      :kind,
-      :namespace,
-      :enabled,
-      :from_auto_devops,
-      :yaml,
-      :updated_at,
-      :environments
-    )
-  end
-end
diff --git a/ee/spec/graphql/types/project_type_spec.rb b/ee/spec/graphql/types/project_type_spec.rb
index a190a4b5e1b146458fcf320c5c212a5b05c0650c..6d1115b4ddf020a418cf8c67fd8c847e1f0dc729 100644
--- a/ee/spec/graphql/types/project_type_spec.rb
+++ b/ee/spec/graphql/types/project_type_spec.rb
@@ -25,7 +25,7 @@
       vulnerability_severities_count packages compliance_frameworks vulnerabilities_count_by_day
       security_dashboard_path iterations iteration_cadences repository_size_excess actual_repository_size_limit
       code_coverage_summary api_fuzzing_ci_configuration corpuses path_locks incident_management_escalation_policies
-      incident_management_escalation_policy scan_execution_policies approval_policies network_policies
+      incident_management_escalation_policy scan_execution_policies approval_policies
       security_policy_project security_training_urls vulnerability_images only_allow_merge_if_all_status_checks_passed
       security_policy_project_linked_projects security_policy_project_linked_namespaces
       dependencies merge_requests_disable_committers_approval has_jira_vulnerability_issue_creation_enabled
diff --git a/spec/support/rspec_order_todo.yml b/spec/support/rspec_order_todo.yml
index fde75ea6652397cf29dd620a59d224399809b55c..e8bad32881ae4dc6b6056356943f99becae641db 100644
--- a/spec/support/rspec_order_todo.yml
+++ b/spec/support/rspec_order_todo.yml
@@ -667,7 +667,6 @@
 - './ee/spec/graphql/resolvers/instance_security_dashboard_resolver_spec.rb'
 - './ee/spec/graphql/resolvers/iterations/cadences_resolver_spec.rb'
 - './ee/spec/graphql/resolvers/iterations_resolver_spec.rb'
-- './ee/spec/graphql/resolvers/network_policy_resolver_spec.rb'
 - './ee/spec/graphql/resolvers/path_locks_resolver_spec.rb'
 - './ee/spec/graphql/resolvers/pipeline_security_report_findings_resolver_spec.rb'
 - './ee/spec/graphql/resolvers/requirements_management/requirements_resolver_spec.rb'
@@ -768,8 +767,6 @@
 - './ee/spec/graphql/types/merge_requests/approval_state_type_spec.rb'
 - './ee/spec/graphql/types/metric_image_type_spec.rb'
 - './ee/spec/graphql/types/move_type_enum_spec.rb'
-- './ee/spec/graphql/types/network_policy_kind_enum_spec.rb'
-- './ee/spec/graphql/types/network_policy_type_spec.rb'
 - './ee/spec/graphql/types/path_lock_type_spec.rb'
 - './ee/spec/graphql/types/permission_types/epic_spec.rb'
 - './ee/spec/graphql/types/permission_types/project_spec.rb'