def update_object(self):
        if self.resource.route_table:
            if not self.object.get("RouteTableAssociationId", None):
                yield self.generic_action(
                    "Associate route table",
                    self.client.associate_route_table,
                    SubnetId=serializers.Identifier(),
                    RouteTableId=self.resource.route_table.identifier(),
                )
            elif (
                self.object["RouteTableId"]
                != self.runner.get_plan(self.resource.route_table).resource_id
            ):
                yield self.generic_action(
                    "Replace route table association",
                    self.client.replace_route_table_association,
                    AssociationId=self.object["RouteTableAssociationId"],
                    RouteTableId=self.resource.route_table.identifier(),
                )
        elif self.object.get("RouteTableAssociationId", None):
            yield self.generic_action(
                "Disassociate route table",
                self.client.disassociate_route_table,
                AssociationId=self.object["RouteTableAssociationId"],
            )

        naa_changed = False
        if not self.resource.network_acl:
            return
        if not self.object:
            naa_changed = True
        elif not self.object.get("NetworkAclAssociationId", None):
            naa_changed = True
        elif self.runner.get_plan(
            self.resource.network_acl
        ).resource_id != self.object.get("NetworkAclId", None):
            naa_changed = True

        if naa_changed:
            yield self.generic_action(
                "Replace Network ACL association",
                self.client.replace_network_acl_association,
                AssociationId=serializers.Property("NetworkAclAssociationId"),
                NetworkAclId=self.resource.network_acl.identifier(),
            )